Spec-Zone.ru › GNU Fortran 13

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

Spec-Zone.ru

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