我有一個項目與自動工具建立一個C++庫,包括與Boost.Python的Python綁定。 我的Boost.Python我的系統上的二進制文件,我想在本鏈接:使用libtool鏈接到非libtool庫
/usr/lib/libboost_python-py27.so.1.49.0
沒有相應的.la文件,所以我想我可以在完整路徑庫添加到libtool的有類似於此命令:
bash ./libtool --mode=link g++ -rpath /usr/local/lib src/o1.lo src/o2.lo ... \
/usr/lib/libboost_python-py27.so.1.49.0 -o libNSM.la
但是的libtool被丟棄從已發行克++ COM的/usr/lib/libboost_python-py27.so.1.49.0普通話。如果我手工運行g ++,它工作正常。
我該如何製作libtool使用本地共享庫或什麼是處理這種情況的正確方法。我絕對希望用戶能夠使用他們現有的增強二進制文件。
我正在使用AX_BOOST_PYTHON,它給了我boost路徑(在我的情況下只是/ usr/lib)的路徑。但這不是一個助推問題,這是一個普遍問題。假設我在我的項目中使用了非流行的庫,並且我的軟件的用戶只有一個共享庫(不是libtool,而是.so文件)。如果libtool不接受非libtool庫,他們如何構建項目?什麼是正確的方法來做到這一點? – bennihepp
似乎沒有辦法使用libtool將庫與非標準文件名鏈接起來。該庫需要以.so或.la結尾的文件。 – bennihepp
Boost開發包(例如'boost-dev'或'libboost-python1.49-dev')應該爲共享庫提供一個符號鏈接(帶有'.so'擴展名)。 – ldav1s