![ld 链接器忽略 LD_LIBRARY_PATH](https://linux22.com/image/165345/ld%20%E9%93%BE%E6%8E%A5%E5%99%A8%E5%BF%BD%E7%95%A5%20LD_LIBRARY_PATH.png)
我在链接英特尔 MKL 库以用于构建具有 MKL 支持的 Julia 时遇到问题。我在其他项目中也遇到过这个问题,但在这里我将重点关注 Julia。我已将 MKL 安装在/opt/intel
.我试过了:
- 跑步
/opt/intel/bin/compilervars.sh intel64
- 跑步
/opt/intel/mkl/bin/mklvars.sh intel64
- 将库 (libmkl_rt.so) 添加到 LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/mkl/lib/intel64_lin
- 添加一个名为“mkl.conf”的文件,其中
/etc/ld.so.conf.d
包含内容/opt/intel/compilers_and_libraries_2019/linux/mkl/lib/intel64_lin
经过最后两次我跑了sudo ldconfig
,但没有任何变化。我怎样才能让Make识别这个库?
答案1
LD_LIBRARY_PATH
和文件/etc/ld.so.conf.d
配置运行时链接器,而不是构建期间使用的链接器。
要使用 MKL 构建 Julia,你应该
添加
USE_INTEL_MKL = 1
到
Make.user
跑步
source /opt/intel/bin/compilervars.sh intel64
compilervars
并从同一个 shell 构建 Julia(以便考虑设置的变量)。