我正在尝试使用 gfortran
编译器编译一个有效的 Fortran 77 文件。我使用以下命令编译 Fortran:
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++和 Fortran 77 .
知道我可以做些什么来克服这个问题吗?
最佳答案
您有两个主要程序:一个是 C++ 语言,另一个是 Fortran 语言。通过
删除 Fortran 语言选项 1: Fortran 程序的第一位应该是 BLOCK DATA 段。只需添加
BLOCK DATA INFO
一开始
选项 2: 删除第一个 END 之前的所有内容。
关于c++ - 使用 Fortran 编译和链接 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866822/