有人能解释我(用简单的英文)如何将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)中。
谢谢!
答案 0 :(得分:2)
文件是如何调用的? -l到链接器并不意味着采用真正的文件名。它意味着取[x],然后找到的文件名为lib [x]。{so,a}。
如果要提供真实对象文件名,可以不使用-l并使用绝对路径附加它,或使用-l:[filename]。
我认为为你做正确的方法是-lmkl_ia32
。原始文件名仅在lib不被称为lib [x]。{so,a}