2016-09-20 9 views
0

私は完全に動作している単純な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' 
+1

Gfortran 4.9はgccとg ++ 4.9では動作しますが、異種のコンパイラでは動作しません。 – tim18

+0

gfortranとg ++は同じバージョン4.9を使用しており、簡単なサンプルコードで作業しています。 – musafir

+2

エラーメッセージの原因となるコマンドを表示する必要があります。また、小さな例を分離しようとする必要があります。 –

答えて

0

の作業コマンド

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

'NM' は、私はそれを推測していc.oとfortran.o 両方はおそらくあなたが必要とアンダースコアです。

+0

シンボルがCベースのlibquadmathから来たのであれば、ほとんどそうは考えられません。実際には、OPがすでに解決策を見つけたことに気づくでしょう。彼はすでに彼の質問に答えています。これは本当にコメントだったはずです。 –

関連する問題