компоновщик — компилировать и связывать C ++ с Fortran

Я пытаюсь скомпилировать правильный файл Fortran 77, используя gfortran компилятор. Я использую следующую команду для компиляции Фортрана:

gfortran -c main.f -o main-fortran.o -llapack -lblas

Мне также нужно связать это с программой на C ++, которая компилируется следующим образом:

g++ -c main.cpp -o main-cpp.o

Оба эти файла компилируются без каких-либо ошибок или предупреждений.

Однако я не могу связать их вместе в исполняемый файл. Вот команда, которую я использую:

g++ main-cpp.o main-fortran.o -o run.exe -lgfortran -llapack -lblas

Затем компоновщик выдает эту ошибку:

main-fortran.o: In function `main':
main.f:(.text+0x2e18): multiple definition of `main'
main-cpp.o:main.cpp:(.text+0x8e9): first defined here
collect2: ld returned 1 exit status

Вы можете найти исходные файлы здесь: C ++ а также Фортран 77.

Любая идея, что я могу сделать, чтобы преодолеть это?

0

Решение

У вас есть две основные программы: одна на C ++ и одна на Фортране. Удалить Фортран один из

Опция 1:
Первым битом вашей программы на Фортране должен быть сегмент BLOCK DATA. Просто добавь

BLOCK DATA INFO

В начале.

Вариант 2:
Удалите все до первого КОНЦА.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]