我有一个从我的 Python 程序调用的 C++ 共享库。C++ 库是用我在 OS X 上使用 homebrew 安装的 HDF5 编译的,所以它位于/usr/local/lib
. 现在的问题是我还安装了 PyTables,其中包括旧版本的 libhdf5,安装在/Library/Frameworks/EPD64.framework/Versions/Current/...
我可以很好地编译和链接我的库,并且otool -L
确实指向/usr/local/lib/libhdf5.dylib
. 但是,当我尝试从 Python 运行它时,会出现版本不匹配错误。不知何故,运行时链接器正在加载旧的 hdf5 库。
一种解决方法是将 hdf5 构建为静态库,但我想找到一个更简洁的解决方案 - 我如何说服运行时链接器使用更新的库?我已经尝试设置 DYLD_LIBRARY_PATH 但这只是破坏了其他一切(Python 和 MacVim 无法启动)。