質問

ベクトル統計ライブラリ(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}

と呼ばれない場合にのみ有用です。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top