【发布时间】:2011-10-18 15:23:03
【问题描述】:
我正在尝试在运行 Mac OSX 10.6.6 和 Xcode 3.2.6 的 64 位 Mac 上使用 Intel Math Kernel Library (MKL)。对于 Mac,英特尔 MKL 只能通过安装完整的 Intel Composer XE 2011 C++ 编译器来使用。我已经这样做了,我运行了 bash 脚本
/Developer/opt/intel/composer_xe_2011_sp1.6.038/mkl/bin/intel64/mklvars_intel64.sh
/Developer/opt/intel/composer_xe_2011_sp1.6.038/link_install.sh
为 Composer XE 和 MKL 设置环境变量。我可以使用编译器在 Xcode 中构建简单的测试项目。
但是,我无法使用 MKL,因为我无法在 Xcode as described here 中链接它。我没有该超链接中描述的 MKL 框架文件夹
/Library/Frameworks/Intel_MKL.framework/
(具体来说,我的系统上的任何地方都没有标题为 Intel_MKL.framework 的文件夹。)英特尔的几本 MKL 参考手册中都提到了检查以确保该文件夹存在,但它们没有告诉你如果发生这种情况该怎么办它不存在!如果您已正确安装 MKL,似乎假定它存在,但我有(“Composer XE 安装成功”)并且没有 Intel_MKL.framework。
如果重要的话,我得到的错误是
"_dsyevx", referenced from:
jEigenvalues(TNT::Array2D<double>&, TNT::Array1D<double>&)in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
据我了解与未正确链接一致。
我花了很多时间和精力试图寻求帮助,包括英特尔论坛,但无济于事。我怀疑这是一个简单的问题(我只是一个业余爱好者)。
非常感谢您的帮助。
编辑:
根据 Paul 的建议,我重新运行了安装程序,没有任何变化。唯一的 mkl.h 文件位于
/Developer/opt/intel/composer_xe_2011_sp1.6.038/mkl/include
以及非Xcode安装目录中预期的相同副本
/opt/intel/composer_xe_2011_sp1.6.038/mkl/include
我不知道这是否是我应该在 Xcode 的“标题搜索路径”下列出的内容,但我很久以前就列出了。我也列出来了
/Developer/opt/intel/composer_xe_2011_sp1.6.038/mkl/lib
作为“库搜索路径”,我根据阅读此2011 guide 的最佳尝试添加了这些链接器标志:
-libmkl_intel_lp64.a
-libmkl_core.a
-libmkl_sequential.a
-libmkl_intel_thread.a
什么都没有改变,我得到同样的错误:
ld returned 1 exit status
他的问题是动态链接还是静态链接?我选择了静态链接(.a 结尾而不是 .dylib),因为它看起来更简单,但我不知道。更改为动态没有任何作用。
这里有什么可以得到反馈的吗?基于此错误,我不知道要更改什么。
EDIT2:
我刚刚在 Xcode“项目信息”(可能是 100 个选项之一)中找到了一个我不知道存在的选项“使用英特尔数学内核库”。 (我应该在哪里找到这个?)现在事情正在构建,但是当我运行可执行文件时,我得到了
exit;
dyld: Library not loaded: libmkl_intel_lp64.dylib
Referenced from: /Users/.../nameofexecutable
Reason: image not found
Trace/BPT trap
logout
我已经仔细检查了库搜索目录是否正确。我还尝试切换以 .a 结尾的静态库,但错误完全相同。 (仍然有 .dylib 结尾。)这是否意味着我被动态困住了?为什么?我还定义了变量
DYLD_LIBRARY_PATH
成为
/Developer/opt/intel/composer_xe_2011_sp1.6.038/compiler/lib: /Developer/opt/intel/composer_xe_2011_sp1.6.038/mkl/lib
正如old instructions here 中的建议,但没有任何改变。
哇,这太难了。
【问题讨论】:
标签: xcode linker osx-snow-leopard intel intel-mkl