1

ベクトル統計ライブラリー (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) に存在します。

ありがとう!!

4

1 に答える 1

2

ファイルは実際にどのように呼び出されますか? リンカーへの -l は、実際のファイル名を取ることを意図していません。[x] を取得することを意図していますが、そのときに検出されるファイルは lib[x].{so,a} と呼ばれます。

実際のオブジェクト ファイル名を指定する場合は、-l を使用せずに絶対パスを使用して追加するか、-l:[ファイル名] を使用します。

しかし、あなたのためにそれを行う正しい方法はそうであると思います-lmkl_ia32。生のファイル名は、ライブラリが lib[x].{so,a} と呼ばれていない場合にのみ役立ちます。

于 2009-03-05T12:19:40.280 に答える