Проблема компиляции кода C / Fortran вместе с pgi на окнах: «основное уже определено» - PullRequest
0 голосов
/ 10 декабря 2018

Ниже приведен игрушечный пример файлов C / Fortran, которые я хочу скомпилировать вместе.

Файл C

void testfunc();

int main(void)
{
    testfunc();
}

Файл Fortran

subroutine testfunc() bind (C, name = "testfunc")
    write(*,*) "Hello World!"
end subroutine

Используя gcc, я могу сгенерировать двоичный файл с помощью команды

gfortran -o my_prog main.c testfunc.f90

Однако, когда я пытаюсь сделать то же самое с pgf90

pgf90 -o my_prog main.c testfunc.f90

, я получаю следующее сообщение об ошибке:

main.obj : error LNK2005: main already defined in f90main.obj
f90main.obj : error LNK2019: unresolved external symbol MAIN_ referenced in function main

Существует ли стандартная процедура компиляции C + Fortran с pgi в Windows?

1 Ответ

0 голосов
/ 10 декабря 2018

Добавьте флаг "-Mnomain" в ссылку, чтобы компилятор не включал основной объект F90 в ссылку и вместо этого использовал предоставленный пользователем C main.

...