1

谁能解释一下(用简单的英语)如何将向量统计库(包含在数学内核库中)链接到使用适用于 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:[filename]。

但是,我认为为您做这件事的正确方法是-lmkl_ia32。原始文件名仅在 lib 不称为 lib[x].{so,a} 时才有用

于 2009-03-05T12:19:40.280 回答