ld 链接器忽略 LD_LIBRARY_PATH

ld 链接器忽略 LD_LIBRARY_PATH

我在链接英特尔 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(以便考虑设置的变量)。

相关内容