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

Undefined references when mixing gfortran and g++ compilation

本文关键字:未定义 引用 g++ 编译 gfortran 混合      更新时间:2023-10-16

我正在尝试混合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'

工作命令

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

'nm',即c/o和f/o我猜它可能是你需要的下划线