繁体   English   中英

将静态库链接到Boost Python(共享库)中-导入错误

[英]Linking a static library into Boost Python (shared library) - Import Error

我正在构建一个Boost Python模块(.so共享库文件),该模块依赖于另一个外部库(STXXL)

虽然我可以构建和导入示例Boost Python模块,但是当将STXXL放入组合中时,我会遇到问题。 特别是在python中运行import fast_parts

我收到ImportError: ./fast_parts.so: undefined symbol: _ZN5stxxl10ran32StateE

这对我说STXXL库没有链接,但是我不确定如何链接它,而且链接器没有给我任何错误。 值得注意的是,我可以使用STXXL成功构建和运行独立程序,据我所知,这些库存储在如下所示lib目录中的.a归档文件中。 我将我的Makefile缩减为一个命令,如下所示:

g++ -I/home/zenna/Downloads/stxxl-1.3.0/include -include stxxl/bits/defines.h -I/home/zenna/local/include -I/usr/include/python2.6 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O3 -Wall -g -DFOO=BAR -pthread -L/home/zenna/Downloads/stxxl-1.3.0/lib/ -lstxxl -L/home/zenna/local/lib/ -lboost_python -lpython2.6 -fPIC -shared -o fast_parts.so partition.cpp

有什么建议吗?

我假设使用Linux,如果不正确,请发表评论。 libfast_parts.soldd输出是什么样的? 是否表明未找到libstxxl.so

您可能需要添加/home/zenna/Downloads/stxxl-1.3.0/lib/LD_LIBRARY_PATH或将rpath libfast_parts.so

-Wl,-rpath,/home/zenna/Downloads/stxxl-1.3.0/lib -L/home/zenna/Downloads/stxxl-1.3.0/lib -lstxxl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM