Python プログラムから呼び出される C++ 共有ライブラリがあります。C++ lib は、OS X で自作を使用してインストールした HDF5 でコンパイルされているため、/usr/local/lib
. 問題は、古いバージョンの libhdf5 を含む PyTables もインストールされていることです。/Library/Frameworks/EPD64.framework/Versions/Current/...
ライブラリを問題なくコンパイルおよびリンクでき、otool -L
実際に/usr/local/lib/libhdf5.dylib
. しかし、Python から実行しようとすると、バージョンの不一致エラーが発生します。どういうわけか、実行時リンカーが代わりに古い hdf5 ライブラリをロードしています。
1 つの回避策は、代わりに hdf5 を静的ライブラリとしてビルドすることですが、より適切な解決策を見つけたいと思います。ランタイム リンカーが新しいライブラリを使用するように説得するにはどうすればよいですか? 私はすでに DYLD_LIBRARY_PATH を設定しようとしましたが、それは他のすべてを壊しました (Python と MacVim は起動しません)。