【发布时间】:2011-07-04 19:39:35
【问题描述】:
我的 Python 程序调用了一个 C++ 共享库。 C++ 库是用我在 OS X 上使用自制软件安装的 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 无法启动)。
【问题讨论】:
-
我在 Matlab 中对 mex 文件有同样的问题。我希望你能找到我可以回收的解决方案!