簡體   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