要编译个python包,内含c++拓展,需要一个动态库。因为没有服务器的root权限,自行下载动态库编译,得到.so
文件及路径。
按照常规的将路径加入LD_LIBRARY_PATH后,仍然无法找到指定动态库。使用
ld -<lib> --verbose
测试发现,/usr/bin/ld
就不会搜索LD_LIBRARY_PATH
指定路径。
因为我对python包 以及 服务器整体环境并不了解,所以难于分析原因。搜索到简单的解决方法如下:
LIBRARY_PATH=<package_path>/lib python setup.py build
首先是LIBRARY_PATH,而不是LD_LIBRARY_PATH。然后使用export LIBRARY_PATH
等方法加入的系统变量无效,需要加到python
命令之前,原因不明。
详情请参考:GNU ld cannot find library which is there