質問
ベクトル統計ライブラリ(Math Kernel Libraryに含まれる)をLinux向けインテルFortranコンパイラでコンパイルされたFortran 90ソースコードにリンクする方法を(平易な英語で)誰か教えてもらえますか?
メイクファイルは次のようになります。
f90comp = ifort
libdir = /home/project/
mklpath = /opt/intel/mkl/10.0.5.025/lib/32/
mklinclude = /opt/intel/mkl/10.0.5.025/include/
exec: AAA.o
$(f90comp) -o AAA -L$(mklpath) -I$(mklinclude) AAA.o -libmkl_ia32.a -lguide -lpthread
AAA.o: $(libdir)AAA.f90
$(f90comp) -c -L$(mklpath) -I$(mklinclude) $(libdir)AAA.f90 -libmkl_ia32.a -lguide -lpthread
次のエラーが生成されます:
ld: cannot find -libmkl_ia32.a
make: *** Error 1
ただし、ファイルは指定されたディレクトリ(mklpath)に存在します。
ありがとう!!
解決
ファイルは実際にどのように呼び出されますか?リンカへの-lは、実際のファイル名を取ることを意図していません。 [x]を取得するためのものですが、見つかったファイルはlib [x]。{so、a}と呼ばれます。
実際のオブジェクトファイル名を指定する場合は、-lと絶対パスを使用せずに単に追加するか、-l:[filename]を使用します。
ただし、正しい方法は -lmkl_ia32
であると思います。生のファイル名は、libがlib [x]。{so、a}
所属していません StackOverflow