我正在尝试使用gfortran
编译器编译有效的Fortran 77文件。我使用以下命令编译Fortran:
gfortran -c main.f -o main-fortran.o -llapack -lblas
我还需要将它与C ++程序联系起来,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++和Fortran 77。
知道我能做些什么来克服这个问题吗?
答案 0 :(得分:1)
你有两个主程序:一个用C ++编写,一个用Fortran编写。通过
删除Fortran选项1: Fortran程序的第一位应该是BLOCK DATA段。只需添加
BLOCK DATA INFO
一开始。
选项2: 删除第一个END之前的所有内容。