web-dev-qa-db-ja.com

ldリンカーはLD_LIBRARY_PATHを無視します

MKLサポートを使用してJuliaをビルドする際に使用するIntelMKLライブラリをリンクするのに問題があります。他のプロジェクトでもこの問題が発生しましたが、ここではジュリアに焦点を当てます。 /opt/intelにMKLをインストールしています。私はもう試した:

  • 実行中/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
  • /etc/ld.so.conf.d内に「mkl.conf」というファイルを追加します。内容は/opt/intel/compilers_and_libraries_2019/linux/mkl/lib/intel64_linです。

最後の2つの後、Sudo ldconfigを実行しましたが、変更はありません。 Makeにこのライブラリを認識させるにはどうすればよいですか?

3
mark2

LD_LIBRARY_PATHおよび/etc/ld.so.conf.d内のファイルは、ビルド中に使用されるリンカーではなく、ランタイムリンカーを構成します。

MKLでJuliaを構築するには、 必要があります

  • 追加

    USE_INTEL_MKL = 1
    

    Make.user

  • 実行

    source /opt/intel/bin/compilervars.sh intel64
    
  • 同じシェルからJuliaをビルドします(compilervarsで設定された変数が考慮されるようにします)。

6
Stephen Kitt