Mac
ifort

dyld: Library not loaded: @rpath/libiomp5.dylibというエラーの解決法

dyld: Library not loaded: @rpath/libiomp5.dylib

表題のエラーの解決に難儀したのでメモ。macOSにてIntelコンパイラを使う際に生じるエラーのようです。
なお本稿の内容はこちらにあるものですが、質問形式で要領良くまとまっていない上に、同内容について紹介する日本語のページが見当たらなかっため、こちらでシェアしておきます。

状況

並列化のオプション(-openmp)を付け、ifortにてコンパイル。コンパイル時はエラーを返さなかったが、実行時に表題のエラーが返ってきた。
libiomp5.dylibというライブラリが見つからないことが原因だが、DYLD_LIBRARY_PATH環境変数に該当するパスを通しても問題が解決しない。

原因

上記リンクによると、@rpathという変数がMacでは何らかの理由により正しく設定されないらしい(このあたりの詳細は不明)。

解決

以下のコマンドを実行することにより無事問題が解決した。

install_name_tool -change @rpath/libiomp5.dylib /opt/intel/compilers_and_libraries_2016.3.170/mac/compiler/lib/libiomp5.dylib ${実行ファイルの絶対パス}

同じ問題で悩む人がどれくらいいるのか分かりませんが、とりあえず記録しておきます。

参考リンク

https://software.intel.com/en-us/forums/intel-c-compiler/topic/698021