Spec-Zone.ru › GNU Fortran 10

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-10.2.0/gfortran/Interoperability-Options.html

Spec-Zone.ru

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