7.3 Основная программа, не написанная на Fortran
| • _gfortran_set_args: | Сохранение аргументов командной строки | |
| • _gfortran_set_options: | Установление флагов опций библиотеки | |
| • _gfortran_set_convert: | Установление преобразования порядка байтов | |
| • _gfortran_set_record_marker: | Установка длины маркеров записей | |
| • _gfortran_set_fpe: | Установка условий для возбуждения исключений с плавающей точкой | |
| • _gfortran_set_max_subrecord_length: | Установка длины подзаписей |
Даже при программировании с использованием смешанных языков, вам, скорее всего, не нужно знать или использовать информацию в этом разделе. Поскольку она касается внутренней структуры GNU Fortran, она может также изменяться в последующих мажорных выпусках GCC.
При компиляции PROGRAM с GNU Fortran генерируется функция с именем main (в таблице символов объектного файла), которая инициализирует библиотеку libgfortran, а затем вызывает фактическую программу, которая использует имя MAIN__, по историческим причинам. Если вы связываете процедуры, скомпилированные с помощью GNU Fortran, с, например, программой на C или C++, или с программой на Fortran, скомпилированной другим компилятором, библиотека libgfortran не инициализируется, и, следовательно, некоторые встроенные процедуры работают неправильно, например, те, которые получают аргументы командной строки.
Поэтому, если ваша PROGRAM не скомпилирована с помощью GNU Fortran, и процедуры, скомпилированные с помощью GNU Fortran, требуют встроенных функций, зависящих от инициализации библиотеки, вам нужно инициализировать библиотеку самостоятельно. Используя стандартные опции, gfortran вызывает _gfortran_set_args и _gfortran_set_options. Инициализация первой нужна, если вызываемые процедуры обращаются к командной строке (и для отслеживания обратных вызовов); вторая устанавливает некоторые флаги, основанные на выбранном стандарте или для активации отслеживания обратных вызовов. В типичных программах вызывать какие-либо функции инициализации не нужно.
Если ваша PROGRAM скомпилирована с помощью GNU Fortran, вам не следует вызывать ни одну из следующих функций. Функции инициализации libgfortran представлены в синтаксисе C, но с помощью связывающего слоя C к ним также можно получить доступ из Fortran.
Далее: Правила именования и передачи аргументов, Предыдущее: Директивы компилятора GNU Fortran, Вверх: Программирование на смешанных языках [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gfortran/Non_002dFortran-Main-Program.html