2009-03-04 33 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}