2009-03-04 32 views
1

任何人都可以解释我如何将矢量统计库(包含在数学核心库中)与用于Linux的英特尔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

您是否看到ifort的错误消息?发布该信息可能有助于诊断您的问题。 – 2009-03-04 20:02:29

回答

2

该文件如何真的被调用? -l到链接器并不意味着需要一个真正的文件名。它的意思是采取[x],而被发现的文件则称为lib [x]。{so,a}。

如果您想给出真实的对象文件名,您可以直接追加它而不使用-l并使用绝对路径,或使用-l:[filename]。

然而,我认为正确的做法对你来说是-lmkl_ia32。原始文件名仅在lib不被称为lib [x]时有用。{so,a}