6.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-12.1.0/gfortran/Non-Fortran-Main-Program.html