我必須在包含舊版C++ boost庫的機器上進行演示。具體而言,我需要boost::thread
,其中我使用mutex
類的lock
成員函數。不幸的是,舊版本(1.33.1)不包含這種方法。忽略以前版本的boost C++
我在目標機器上沒有root權限,我無法卸載以前版本的boost。我的解決方案是在目標機器上預編譯更新的庫,並鏈接到庫的較新版本。
庫編譯部分進行得很順利,一切都順利完成,但是當我嘗試編譯它時仍然表示它使用的是舊版本的boost。我做了一些環視(g ++ noob here),發現你可以手動指定一個位置來首先使用-L
和-I
標誌查找標題和庫。我試圖用相對路徑使用這些(因爲我不知道從哪個演示將執行的目錄,但我知道我的新Boost庫的相對路徑),我想出了這個:
-bash-3.2$ g++ -I./include -L./lib main.cpp -lthread
/usr/bin/ld: cannot find -lthread
collect2: ld returned 1 exit status
我一直在嘗試各種各樣的東西,比如在包含/庫目錄中指定一個更深入的路徑,但沒有運氣,我覺得我處於死衚衕。有任何想法嗎? 僅供參考,我期待使用boost 1.49.0。
待辦事項./lib中有libthread.so嗎? – Attila 2012-04-16 01:43:42
./lib包含以下文件:'libboost_thread.a','libboost_thread.so'和'libboost_thread.so.1.49.0' – 2012-04-16 01:45:08