Використання компілятора gfortran

GNU Fortran: Використання компілятора


Ця сторінка призначена, щоб дати короткий огляд про те, як використовувати GNU Fortran. Це не заміна для повної інструкції, але це допоможе вам почати роботу.

GNU Fortran грунтується на GCC, і, таким чином, розділяє більшість характеристик з ним. Якщо ви знаєте, як використовувати GCC, то для вас в цьому документі набудуть багато нового. Тим більше, що відомості для оптимізації і генерації налагоджувальної інформації тут не вказані.

Не забудьте прочитати вікі-сторінку про часто зустрічаються проблеми з GNU Fortran!

Основне використання

Для того, щоб скомпілювати вихідний файл source.f90 потрібно запустити:

gfortran -c source.f90

Вихідний файл буде автоматично названий source.o Це об'єктний файл, який не може бути виконаний.

Після того як ви зібрали деякі вихідні файли, ви можете пов'язати їх разом з необхідними бібліотеками для створення виконуваного файлу. Це робиться в такий спосіб:

gfortran -o ісполняемий_файл object1.o object2.o.

де ісполняемий_файл буде названий ісполняемий_файл.exe і objectN.o - об'єктні файли, які можуть бути створені, як описано вище, або попередньо іншим компілятором з вихідних в іншій мові.
Якщо -o ісполняемий_файл не вказано, ісполняемий_файл буде названий a.out (на Cygwin системі: A.exe). Виконуваний файл може бути виконаний, як і будь-яка інша програма ..

Можна також виконати окремий етап компіляції і ввести такі команди, як:

gfortran -o ісполняемий_файл source1.f90 source2.f90

який буде компілювати source1.f90 і source2.f90, створяться посилання і згенерує виконуваний ісполняемий_файл в один крок. Ви також можете помістити об'єктні файли в цій командному рядку, вони будуть автоматично пов'язані під час стадії компонування.

Управління джерелом вхідного формату


GFortran 95 дозволяє використання двох різних видів джерел вхідних форматів (вільної форми вихідного коду та фіксованого форми) компілятор повинен знати, який вид введення заданий. Правило полягає в наступному:

Файли, назва яких закінчується на .F або на .for. як передбачається, фіксованої форми

Файли, чиє ім'я закінчується на .f90 або на .f95. як передбачається, будуть у вільному форми запису коду.

Для інших файлів вихідна форма повинна бути задана явно. Це може бути зроблено за допомогою параметрів командного рядка, описаними нижче, які також можуть бути використані для перевизначення перших два правила.

Коли GNU Fortran працює з файлом, ім'я якого закінчується на .f90 або на .f95. він передбачає, що це файл вільної форми запису коду. Якщо цей файл насправді фіксованою форми коду, користувач повинен дати параметр командного рядка -ffixed-form (фіксованою форми). Точна семантика цього варіанту, і інші варіанти, які стосуються фіксованою формі вихідного коду в порівнянні з вільною формою вихідного коду, такі ж, як в g77, що можна прочитати в документації до g77.

При запуску Gfortran насправді не працює компілятор, а працює драйвер компілятора. Цей драйвер інтерпретує опції командного рядка, і управляє компілятором, ассемблером і компоновщиком. За замовчуванням, цей драйвер компілятора вирішує використовуючи розширення імені заданого файлу (f90 або f). що робити. Файл з ім'ям foo.c передається компілятору C, файл з ім'ям foo.f90 передається компілятору Fortran 95 і т.д. Скасувати цю поведінку можна оголосивши ім'я файлу аргументом -x в командному рядку, що ідентифікує потрібну мову. Для Fortran 95 це F95

Сумісність з g77


З метою ефективного здійснення проходження секцій масиву, від двійковій сумісності з Fortran 77 довелося відмовитися. Не слід змішувати об'єктні файли, отримані для g77 і gfortran, тому що тоді не вийде робочий виконуваний файл.

Запуск GNU Fortran як інструмент перевірки синтаксису


Можна використовувати GNU Fortran як Checker для перевірки синтаксису (або для того, щоб переконатися, що інтерфейс GNU Fortran правильно приймає або відхиляє програму), вказавши -fsyntax-only в командному рядку. Gfortran НЕ буде генерувати об'єктні файли.

При введенні параметра командного рядка -fdump-parse-tree (розбору дерева) gfortran друкуватиме уявлення розібраної програми, в якому детально вкаже об'єкти даних і виконувані інструкції програми в Lisp-подібної форми.
Одне зауваження - для Fortran старожилів: ASSIGN відносяться не до ASSIGN заявами, але до роботи завдання, тобто недбало кажучи, до оператора =.

Для повноцінної розробки


рекомендується користуватися IDE, наприклад Code :: Blocks. Ця IDE має всі що треба: підсвічування синтаксису, відладчик і багато іншого.
На неофіційній сторінці можна завантажити версію цієї IDE з деякими корисними доповненнями спеціально для програмістів на Фортране:

Далі перейти в отриману папку і для початку встановити права файлів CbLauncher.exe і codeblocks.exe для користувачів: Права кнопка миші - Властивості - вкладка "Безпека" - вибрати "Користувачі" - кнопка "Змінити" - поставити галки "Повний доступ" - ОК .
Далі запустити файл CbLauncher.exe. IDE зробить пошук встановлених в системі компіляторів і виведе діалогове вікно для вибору компілятора за замовчуванням. У списку потрібно знайти "GNU Fortran Compiler", виділити його і натиснути кнопку "Set as default". Далі буде виведений запит на словники для перевірки орфографії - тут можна поставити галочку "Do not annoy me again". На запит про асоціацію файлів з типами c / c ++ можна вибрати "No, leva everything as is", тому що ми не будемо працювати з файлами з ++. В майбутньому запускати Code :: Blocks потрібно файлом codeblocks.exe, при бажанні створивши для нього ярлик.
Для настройки C :: B потрібно головним чином вказати шлях до отладчику в меню Settings - Debugger - GDB / CDB debugger - Default. Для gfortran це буде c: \ program files \ gfortran \ bin \ gdb.exe. Рекомендується поставити галку "Evaluate expressions under cursor".

Прим. адмін:
Для того, щоб в середовищі Windows російський текст з програми на фортране коректно відображався треба вихідний текст програми перекодувати в DOS-кодування, т. Є в CP866 тільки після цього компілювати. Якщо програму запускаєте з командного рядка, то навпаки - исходник слід кодувати в CP1251, оскільки за замовчуванням така русифікація робочого середовища користувача.

Схожі статті