我打算從FORTRAN調用一個C++函數,爲此我使用了ISO_C_Binding模塊。在FORTRAN主文件的壓縮和C++使用命令鏈接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++
編譯器中做一些設置,我不知道該怎麼做,所以請幫忙解決這個問題。
鏈接器無法找到gfortran庫(文件名是libgfortran.a或libgfortran.so)。你可以檢查這個文件是否存在於你的/ lib目錄中?另外,我會重新排列命令行以將.o文件放在-o主目錄後面。 – fvu
這是幾乎相同的問題,如今天早些時候詢問的那樣,http://stackoverflow.com/questions/7255468/calling-c-function-from-fortran-not-c。合併它們會更好。 –