链接FORTRAN和C ++对象文件

时间:2011-08-31 23:11:25

标签: linker g++ fortran gfortran fortran95

我打算从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++编译器,我不知道如何做到这一点,所以请帮助解决这个问题。

1 个答案:

答案 0 :(得分:3)

你应该找到文件libgfortran.*(例如locate的{​​{1}};或者在windows-way find / -name "libgfortran.*"或任何文件管理器中),记录它所在的路径和做

Win+g, F3

其中PATH_RECORDED是路径。

试试这个lib列表(使用-v选项从我的mingw gfortran获取)

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