试图从当前'。'加载共享lib。 dir在osx上进行单元测试。如何使osx上的python加载dylib
在Linux和NetBSD什么工作是有符号链接_mymodule.so --> ../.libs/libmymodule.so
但在OSX,python的import mymodule
不会找到
_mymodule.dylib --> ../.libs/libmymodule.dylib
我已经尝试添加
export DYLD_LIBRARY_PATH=.:$DYLD_LIBRARY_PATH
到脚本env,nogo。任何帮助赞赏。
-Ed
更新4/6/10:
解决了从下面krunk的信息。但只是复制或者将dylib复制到.so这个名字并没有完全解决它。仍然不会加载。但是告诉libtool链接lib和-module标志创建了一个可以加载的.so库。现在,lib的Python版本可以工作。
现在,如果我可以只是让Perl的lib工作。我正在构建swig perl,python,ruby和lua库,而这个修复只能让python和lua工作。
谢谢!你的回答让我走出这条沟,让我走向正确的方向。 – navicore
正如预防措施一样,切勿在OS X中使用静态库。即使您专门链接到静态库,它们也是“不推荐使用”的,OSX会尽可能将动态库链接到静态库。 例如如果你链接到/path/to/libfoo.a和libfoo.dylib或者libfoo.so存在于路径的任何地方,链接器将会明显地忽略你的请求,如果这两个表有不同的表,那么会导致一些非常有趣的运行时未定义符号错误。 – jkyle