1

我将从 FORTRAN 调用一个 C++ 函数,为此我使用 ISO_C_Binding 模块。使用命令压缩 FORTRAN 主文件和 C++ 函数后

 gfortran -c mlp8.f90

 g++ -c mean_cpp.cc

这将创建对象文件,但在一些成员建议的链接阶段,我将使用命令

 g++ mlp8.o mean_cpp.o -o main –lgfortran

即使用 C++ 编译器链接到 FORTRAN 库,但它给出了类似的错误

 /Cygnus/cygwin-b20/H-i586-cygwin32/i586-win32/bin/ld: 
   cannot open –lgfortran: No such a file or directory 

 Collect2:ld return 1 exit status 

所以我认为主要问题是g++链接器无法与 FORTRAN 库链接,所以我可能需要在链接选项中包含一些路径,或者我可能需要在g++编译器中进行一些设置,我不知道如何做到这一点,所以请帮助解决这个问题。

4

1 回答 1

3

您应该找到文件libgfortran.*(例如使用locateof find / -name "libgfortran.*"; 或在 Windows 方式Win+g, F3或任何文件管理器中),记录它所在的路径并执行

 g++ mlp8.o mean_cpp.o -o main -LPATH_RECORDED –lgfortran

其中 PATH_RECORDED 是路径。

试试这个库列表(通过 -v 选项从我的 mingw gfortran 获得)

 g++ mlp8.o mean_cpp.o -o main -LPATH_RECORDED –lgfortran -lmingw32 -lgcc_s -lgcc -lmoldname  -lmingwex -lmsvcrt
于 2011-08-31T23:21:27.953 回答