0
我在寫一個由另一個程序動態加載的庫。該庫使用一些Boost庫(例如,線程)。是否有可能在不重新編譯相關程序的情況下以某種方式工作?將其他庫鏈接到動態加載的庫中
如果我使用鏈接標記-lboost_thread
,它不起作用,因爲使用此庫的程序也需要鏈接相同的Boost庫。使用/usr/lib/libboost_thread.a
也不起作用,因爲.a
文件未編譯爲-fPIC
。
我在Linux下使用GCC。
我在寫一個由另一個程序動態加載的庫。該庫使用一些Boost庫(例如,線程)。是否有可能在不重新編譯相關程序的情況下以某種方式工作?將其他庫鏈接到動態加載的庫中
如果我使用鏈接標記-lboost_thread
,它不起作用,因爲使用此庫的程序也需要鏈接相同的Boost庫。使用/usr/lib/libboost_thread.a
也不起作用,因爲.a
文件未編譯爲-fPIC
。
我在Linux下使用GCC。
再次嘗試,我發現問題不是我所描述的。由於某些其他原因,圖書館未加載。我發現,-lboost_thread
作品鏈接庫,符合下列條件:
-L
路徑這是不是在$LD_LIBRARY_PATH
)。
你的意思是加載你的庫的程序需要在運行時加載boost庫嗎?您不應該在構建時將該庫鏈接到主應用程序,它只是一個運行時依賴項...對吧? – tmpearce
該程序加載我編寫的一個動態庫。該庫取決於Boost。 – petersohn
因此,程序無法在運行時找到Boost庫*的問題,因此您的庫無法加載? – tmpearce