2012-05-07 16 views
1

csparse、gsl、pthread、lapack、blasのようなライブラリを使用するアプリケーションを静的にリンクする必要があります。最後の2つにはlibgfortranが必要です。だから私のコマンドはgfortranの静的リンクと未定義の参照について

gcc -o main bunch_of_object_files.o -fopenmp -static -lcsparse -lgsl -lgslcblas -lpthread -llapack -lblas -lm -lgfortran 

で、出力は

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgfortran.a(fpu.o): In function `_gfortrani_set_fpu': 
(.text+0xa): undefined reference to `fedisableexcept' 
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgfortran.a(fpu.o): In function `_gfortrani_set_fpu': 
(.text+0x56): undefined reference to `feenableexcept' 
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgfortran.a(fpu.o): In function `_gfortrani_set_fpu': 
(.text+0x6e): undefined reference to `feenableexcept' 
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgfortran.a(fpu.o): In function `_gfortrani_set_fpu': 
(.text+0x86): undefined reference to `feenableexcept' 
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgfortran.a(fpu.o): In function `_gfortrani_set_fpu': 
(.text+0xb6): undefined reference to `feenableexcept' 
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgfortran.a(fpu.o): In function `_gfortrani_set_fpu': 
(.text+0x4a): undefined reference to `feenableexcept' 
collect2: ld returned 1 exit status 

ですが、私はのgfortranの代わりに、GCCを使用してリンクしている場合、それは動作します。どうして?

答えて

4

-lgfortran-lmを置きます。順序を静的にリンクすることが重要です。

+0

これは、ありがとう – Patrik

関連する問題