矢量统计库 - 数学核心库

时间:2009-03-04 15:39:00

标签: linker fortran

有人能解释我(用简单的英文)如何将Vector统计库(包含在数学内核库中)链接到使用英特尔Fortran编译器编译的Fortran 90源代码?

我的makefile如下所示:

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)中。

谢谢!

1 个答案:

答案 0 :(得分:2)

文件是如何调用的? -l到链接器并不意味着采用真正的文件名。它意味着取[x],然后找到的文件名为lib [x]。{so,a}。

如果要提供真实对象文件名,可以不使用-l并使用绝对路径附加它,或使用-l:[filename]。

我认为为你做正确的方法是-lmkl_ia32。原始文件名仅在lib不被称为lib [x]。{so,a}

时才有用