2017-05-03 30 views
1

私はコンパイルしようとしているプログラムにLAPACKを組み込もうとしています。現在、MINGW64のgfortranコンパイラでmsys2ツールチェーンを使用しています。私はLAPACKを取得するために次のプロセスを使用しました:LAPACKを使用してプログラムをコンパイルしようとしました。私のプログラムはsgetrfとsgetrsだけを呼び出します。しかし、コンパイルすると、次のエラーが発生します。LAPACK with MINGW64を使用する

C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetrf.f.obj):(.text+0x43a): undefined reference to `strsm_' 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetrf.f.obj):(.text+0x524): undefined reference to `sgemm_' 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetrs.f.obj):(.text+0x159): undefined reference to `strsm_' 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetrs.f.obj):(.text+0x1c5): undefined reference to `strsm_' 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetrs.f.obj):(.text+0x340): undefined reference to `strsm_' 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetrs.f.obj):(.text+0x3ac): undefined reference to `strsm_' 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetf2.f.obj):(.text+0x1c3): undefined reference to `isamax_' 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetf2.f.obj):(.text+0x212): undefined reference to `sswap_' 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetf2.f.obj):(.text+0x36c): undefined reference to `sger_' 
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../lib\liblap 
ack.a(sgetf2.f.obj):(.text+0x3ca): undefined reference to `sscal_' 
collect2.exe: error: ld returned 1 exit status 
make[1]: *** [Makefile.all:20: avl] Error 1 

liblapack.aのリンクには何がありますか?

私のコマンドは次のとおりです。

gfortran -m64 -o avl avl.o aoper.o amode.o amass.o asetup.o amake.o ainput.o 
aoutput.o aero.o atrim.o atpforc.o aic.o cdcl.o airutil.o autil.o aplotvl.o aplo 
ttp.o aplotmd.o limits.o pltops.o hidden.o plsubs.o userio.o plutil.o arrow3d.o 
getvm.o matrix.o spline.o sgutil.o second.o -static ../plotlib/libPlt_mingwSP.a 
../eispack/libeispack.a -lgdi32 -luser32 -lblas -llapack 

答えて

0

私は、エラーを発見したと信じて、私は自分の質問に答えることを望んでいました。

まず、これらの呼び出しがBLASに関連しているように見えます。だから、コンパイルの呼び出しに-lblasを追加する必要があった。しかし、私は最初これを無効にして、-lapackを-lapack呼び出しの後に呼び出し、それがうまくいった。

+0

[なぜライブラリがリンクされている順序でGCCでエラーが発生するのですか?](http://stackoverflow.com/q/45135/1362568) –

関連する問題