русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Компілятор мови в linux. Приклади

Операційна система (ОС) Linux/Unix і мова C - "близненцы-брати". Згадайте, що мова програмування C був створений (Д.Ритчи, 1972 р) спеціально для написання ОС Unix, і з тих пір і "канонічна" ОС Unix, а також всі її клони і подібні їй ОС пишуться на мові C. Тому у всіх версіях Unix і Unix-подібних систем компілятор мови C у більшості випадків входить в комплект поставки системи.

Одним з перших програмних продуктів, створених в рамках проекту GNU, також з'явився компілятор мови З відкритим кодом. Цей компілятор надавалася всіх версій ОС Linux.

Таким чином, середа, в якій виконується наш лабораторний практикум надає у Ваше розпорядження 4 компілятора на вибір:

  • cc - стандартний компілятор мови C;
  • c++ - стандартний компілятор мови C++;
  • gcc - GNU-компілятор мови C;
  • g++ - GNU-компілятор мови C++.

Способи запуску і переважна більшість опцій всіх зазначених компіляторів ідентичні, вибір того чи іншого компілятора відображається тільки на імені команди. Ми при підготовці лабораторного практикуму використовували компілятор gcc, тому в подальших прикладах будемо говорити саме про нього.

Компілятор мови C виконує як власне компіляцію - переклад вихідного тексту на машинний мову, результатом чого є об'єктний модуль, так і редагування зв'язків - складання з декількох об'єктних модулів (у тому числі, і бібліотечних) модуля.

Файли з вихідними текстами C-програм повинні мати розширення .c, наприклад: . Результатом компіляції є файл, що містить об'єктний модуль, його ім'я збігається з ім'ям вихідного модуля, а розширення - .o, наприклад: hello.o. Для файлу, що містить виконуваний модуль стандартного розширення не існує. При компіляції програми, яка складається з єдиного вихідного модуля, об'єктний модуль автоматично видаляється після створення компілятором модуля.

Загальний формат команди виклику компілятора має наступний вигляд (компілювання в linux):

 gcc [опції] [выходной_файл] файл1 [файл2 :]

Найбільш уживані параметри компілятора наступні:

-c Пригнічує фазу редагування зв'язків, створює об'єктний модуль для кожного вихідного модуля з перерахованих у параметрах виклику. Выходной_файл з цією опцією не задається. Опція може застосовуватися разом з опцією -I
  
-o Компіляція та редагування зв'язків. Створює об'єктний модуль для кожного вихідного модуля з перерахованих у параметрах виклику і мають розширення .c. Файли з розширенням .c розглядаються як вихідні модулі і компілюються; файли, що мають розширення .o, розглядаються як об ’ єктні модулі і підключаються при редагуванні зв'язків. Параметр выходной_файл задає ім'я файлу модуля. Опція може застосовуватися разом з опціями -L, -l, -I.
  
-L каталог Додати каталог у список каталогів, які містять об'єктні бібліотечні модулі.
  
-l бібліотека При редагуванні зв'язків підключити модулі з бібліотеки.
  
-I каталог Шукати включаються (#include) файли, назви яких починаються не з / спочатку в каталозі, а лише потім - в стандартних каталогах для включення файлів.
  
-E Виконати обробку зазначених вихідних модулів тільки препроцессором, результат направляється у стандартний вивід. Выходной_файл з цією опцією не задається. Опція може застосовуватися разом з опцією -I.
  
-w Придушити видачу попереджувальних повідомлень.

Приклади використання компілятора:

gcc hello.c Компіляція вихідного модуля з видачею повідомлень про помилки на стандартний вивід. Файл об ’ єктного коду не створюється.
  
gcc-c hello.c Компіляція вихідного модуля з видачею повідомлень про помилки на стандартний вивід. При успішній компіляції об'єктний модуль записується у файл hello.o.
  
gcc-o hello hello.o Редагування зв'язків для об'єктного модуля hello.o, виконуваний модуль записується у файл hello.
  
gcc-o hello hello.o hello1.c Створення модуля у файлі hello з об ’ єктного коду hello.o і модуля hello1.c (останній модуль є вихідним, він попередньо компілюється.
  
gcc-o hello hello.o hello1.o-l hellolib Створення модуля у файлі hello з об'єктних модулів hello.o і hello1.o c з підключенням об'єктних модулів з бібліотеки hellolib.
  
gcc-o hello hello1.с-lm Створення модуля у файлі hello з вихідного модуля hello.с з видачею повідомлень про помилки на стандартний вивід з підключенням бібіліотекі math.h. Файл об ’ єктного коду не створюється.

Переглядів: 10293

Повернутися в зміст:ОС Linux




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн