2.10 Варианты взаимодействия с другими языками
- -fc-prototypes
-
Этот параметр сгенерирует прототипы на C из объявлений переменных, типов и интерфейсов процедур
BIND(C), а затем запишет их в стандартный вывод.ENUMпока не поддерживается.Для сгенерированных прототипов может потребоваться включение соответствующего заголовка, такого как
<stdint.h>или<stdlib.h>. Для типов, не указанных с использованием соответствующего типа из модуляiso_c_binding, в код будет добавлено предупреждение в виде комментария.Для указателей на функции будет сгенерирован указатель на функцию, возвращающую
intбез явного списка аргументов.Пример использования:
$ gfortran -fc-prototypes -fsyntax-only foo.f90 > foo.h
где код на C, предназначенный для взаимодействия с кодом Fortran, затем использует
#include "foo.h". - -fc-prototypes-external
-
Этот параметр сгенерирует прототипы на C из внешних функций и подпрограмм и запишет их в стандартный вывод. Это может быть полезно для проверки правильности связей C с кодом Fortran. Этот параметр не генерирует прототипы для
BIND(C)процедур, используйте -fc-prototypes для этого.Для сгенерированных прототипов может потребоваться включение соответствующего заголовка, такого как
<stdint.h>или<stdlib.h>.Это в первую очередь предназначено для устаревшего кода, чтобы гарантировать, что существующие связи C соответствуют тому, что
gfortranвыдает. Сгенерированные C-прототипы должны быть правильными для текущей версии компилятора, но могут не соответствовать потребностям других компиляторов или более ранних версийgfortran. Для новых разработок рекомендуется использовать возможностиBIND(C).Пример использования:
$ gfortran -fc-prototypes-external -fsyntax-only foo.f > foo.h
где код на C, предназначенный для взаимодействия с кодом Fortran, затем использует
#include "foo.h".
Далее: Переменные окружения, Предыдущее: Параметры генерации кода, Вверх: Вызов GNU Fortran [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gfortran/Interoperability-Options.html