私は完全に動作している単純なC++ファイルで実行可能なFortranとC++のオブジェクトファイルを混在させようとしています。しかし、同じFortranオブジェクトファイルをメインのC++コード(非常に大きく複雑なコード)と混在させようとすると、以下のエラーが発生します。私は-lgfortran
のポジションでプレーしましたが、運はありません。gfortranとg ++コンパイルを混在させるときの未定義の参照
使用されるコマンドは
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'
Gfortran 4.9はgccとg ++ 4.9では動作しますが、異種のコンパイラでは動作しません。 – tim18
gfortranとg ++は同じバージョン4.9を使用しており、簡単なサンプルコードで作業しています。 – musafir
エラーメッセージの原因となるコマンドを表示する必要があります。また、小さな例を分離しようとする必要があります。 –