混合gfortran和g ++编译时未定义的引用

时间:2016-09-20 19:12:44

标签: c++ fortran g++ gfortran linker-errors

我正在尝试混合Fortran和C ++目标文件,它们完美地工作并使用简单的C ++文件生成可执行文件。但是,当我尝试将相同的Fortran对象文件与主C ++代码(这是一个非常大且复杂的代码)混合时,它会产生下面列出的以下错误。我玩-lgfortran的位置,但没有运气。

使用的命令是

g++ -o test *.o  -static -lpthread -L/usr/local/lib -lquadmath -lgfortran

并且还尝试了所有类型的排列。

错误是:

gcc_4_9_2_release/libgfortran/io/write_float.def:1300: undefined reference to `signbitq'
gcc_4_9_2_release/libgfortran/io/write_float.def:1300: undefined reference to `finiteq'
gcc_4_9_2_release/libgfortran/io/write_float.def:1213: undefined reference to `finiteq'
gcc_4_9_2_release/libgfortran/io/write_float.def:1300: undefined reference to `isnanq'

2 个答案:

答案 0 :(得分:0)

工作命令是

      g++ -static -o test *.o -lgfortran -lpthread -L/usr/local/lib -lquadmath

答案 1 :(得分:0)

'nm'既有c.o又有fortran.o 我猜它可能是你需要的下划线。