Spec-Zone.ru › GNU Fortran 13

6.3 Программа основного уровня без использования Fortran

Даже если вы работаете с программированием на нескольких языках, вам, скорее всего, не нужно будет знать или использовать информацию в этом разделе. Поскольку она касается внутренней структуры 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.

  • _gfortran_set_args — Сохранить аргументы командной строки
  • _gfortran_set_options — Установить флаги опций библиотеки
  • _gfortran_set_convert — Установить преобразование порядка байтов
  • _gfortran_set_record_marker — Установить длину маркеров записей
  • _gfortran_set_fpe — Включить ловушки исключений с плавающей точкой
  • _gfortran_set_max_subrecord_length — Установить длину подзаписей

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gfortran/Non_002dFortran-Main-Program.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API