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".
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gfortran/Interoperability-Options.html