Опції компіляторів

GСС - це вільно доступний оптимізуючий компілятор для мов C, C ++.

Програма gcc. запускається з командного рядка, представяляет собою надбудову над групою компіляторів. Залежно від розширень імен файлів, що передаються в якості параметрів, і додаткових опцій, gcc запускає необхідні препроцесори, компілятори, лінкери.

Файли з розширенням .cc або .C розглядаються, як файли на мові C ++, файли з розширенням .c як програми на мові C, а файли c розширенням .o вважаються об'єктними.

Щоб відкомпілювати вихідний код C ++, що знаходиться в файлі F.cc. і створити об'єктний файл F.o. необхідно виконати команду:

Опція -c означає «тільки компіляція».

Щоб скомпонувати один або кілька об'єктних файлів, отриманих з вихідного коду - F1.o. F2.o. - в єдиний виконуваний файл F. необхідно ввести команду:

gcc -o F F1.o F2.o

Опція -o задає ім'я файлу, що виконується.

Можна поєднати два етапи обробки - компіляцію і компонування - в один загальний етап за допомогою команди:

gcc -o F F1.cc. -lg ++

- можливі додаткові опції компіляції і компоновки. Опція -lg ++ вказує на необхідність підключити стандартну бібліотеку мови С ++, - можливі додаткові бібліотеки.
Після компонування буде створений виконуваний файл F, який можна запустити з допомогою команди ./F . рядок визначає аргументи командного рядка Вашої програми.
В процесі компонування дуже часто доводиться використовувати бібліотеки. Бібліотекою називають набір об'єктних файлів, згрупованих у єдиний файл і проіндексованих. Коли команда компонування виявляє деяку бібліотеку в списку об'єктних файлів для компонування, вона перевіряє, чи показують вже скомпоновані об'єктні файли виклики для функцій, визначених в одному з файлів бібліотек. Якщо такі функції знайдені, відповідні виклики зв'язуються з кодом об'єктного файлу з бібліотеки. Бібліотеки можуть бути підключені за допомогою опції виду -lname. В цьому випадку в стандартних каталогах, таких як / lib. / Usr / lib, / usr / local / lib буде проведено пошук бібліотеки в файлі з ім'ям libname.a. Бібліотеки повинні бути перераховані після вихідних або об'єктних файлів, що містять виклики до відповідних функцій.

Серед безлічі опцій компіляції і компоновки найбільш часто вживаються наступні:

GFortran - це назва компілятора мови програмування Фортран, що входить в колекцію компіляторів GNU.

Збірка FORTRAN-програми:
синтаксис

gfortran [-c? -S? -E]
[-g] [-pg] [-Olevel]
[-Wwarn. ] [-pedantic]
[-Idir. ] [-Ldir. ]
[-Dmacro [= defn]. ] [-Umacro]
[-foption. ]
[-mmachine-option. ]
[-o outfile] infile.

GFortran спирається на GCC, і, отже, поділяє більшість його характеристик. Зокрема, параметри для оптимізації і генерації налагоджувальної інформації у них збігаються.
GFortran використовується для компіляції вихідного файлу, source.f90. в об'єктний файл, object.o або виконуваний файл, executable. Одночасно він генерує модуль файлів опису зустрічаються модулів, так званий nameofmodule.mod.

Для компіляції вихідного файлу source.f90. можна запустити: gfortran source.f90

Вихідний файл буде автоматично імені source.o. Це об'єктний файл, який не може бути виконаний. Після того як ви зібрали деякі вихідні файли, ви можете з'єднати їх разом з необхідними бібліотеками для створення виконуваного файлу. Це робиться в такий спосіб: gfortran -o executable object1.o object2.o. де виконуваним буде executable. objectX.o - об'єктні файли, які можуть бути створені, як зазначено вище, або в рівній мірі іншими компіляторами з джерел в іншій мові. Якщо опущено ім'я виконуваного файлу, то виконуваний файл буде з назвою a.out. Виконуваний файл може бути виконаний, як і в будь-який інший програмі. Можна також припустити окремий етап компіляції і ввести таку команду: gfortran o executable source1.f90 source2.f90, яка буде здійснювати збір вихідних файлів source1.f90 і source2.f90. зв'язок і створить виконуваний файл. Ви також можете помістити об'єктні файли в цій командному рядку, вони будуть автоматично приєднані.

Ця опція означає, що необхідна тільки компіляція. З вихідних файлів програми створюються об'єктні файли в вигляді name.o. Компонування не проводиться.

Визначити ім'я name в компільованої програмі, як значення value. Ефект такий же, як наявність рядки #define name value на початку програми. Частина = value може бути опущена, в цьому випадку значення за замовчуванням дорівнює 1.

Використовувати file-name як ім'я для створюваного файлу.

Створити за допомогою бібліотеку libname.so

Додати до стандартних каталогах пошуку бібліотек і заголовків файлів шляху lib-path і include-path відповідно.

Помістити в об'єктний або виконуваний файл зневадження для відладчика gdb. Опція повинна бути вказана і для компіляції, і для компонування. У поєднанні -g рекомендується використовувати опцію відключення оптимізації -O0 (див.нижче)

Вивести залежності від заголовних файлів. використовуваних в Сі або С ++ програмі, в форматі, відповідному для утиліти make. Об'єктні або виконувані файли не створюються.

Помістити в об'єктний або виконуваний файл інструкції профілювання для генерації інформації, використовуваної утилітою gprof. Опція повинна бути вказана і для компіляції, і для компонування. Зібрана з опцією -pg програма при запуску генерує файл статистики. Програма gprof на основі цього файлу створює розшифровку, що вказує час, витрачений на виконання кожної функції.

Висновок повідомлень про всіх попередженнях або проблеми, які виникають під час компіляції програми.

Змінні REAL розглядаються як DOUBLE PRECISION. Це те ж саме, що і вказати -Mr8 і -Mr8intrinsics.

Створює зневадження. Опція встановлює рівень оптимізації до нуля, якщо тільки замовлена ​​опція -O. Процес може призвести до несподіваних результатів, якщо замовлений рівень оптимізації відмінний від нуля. Згенерований код буде працювати повільніше при -O0. ніж при інших рівнях оптимізації.

Додає ваші власні каталоги пошуку заголовків файлів в процесі складання

Передає компонувальнику. Додає ваші власні каталоги пошуку бібліотек в процесі складання.

Схожі статті