2014-11-23 73 views
0

我想一個項目,用下面的命令鏈接:在/ usr /斌/勞工處:找不到-lboost_thread-MT

g++ build/test.o -o bin/test -pthread -L lib -L /home/alexander/opt/lib -lboost_thread-mt 

這將導致以下錯誤:

/usr/bin/ld: cannot find -lboost_thread-mt 
collect2: error: ld returned 1 exit status 

然而,boost庫安裝在/home/alexander/opt/lib目錄中。爲什麼鏈接器找不到boost庫?我也試圖與-I代替如果-L具有相同的結果聯繫起來...的/home/alexander/opt/lib

內容爲/home/alexander/opt/lib/boost_1_57_0

+1

你用'-L'指向的目錄必須包含'libboost_thread-mt.so'。如果不是這種情況,請將其更改(例如,轉到'/ home/alexander/opt/lib/boost_1_57_0'。 – filmor 2014-11-23 13:08:03

+1

而'-I'完全與此無關,它是用於包含目錄預處理器來查找你包含的文件) – filmor 2014-11-23 13:08:54

+0

好的,似乎我沒有安裝boost。任何人都知道如何安裝boost?我想這是一個令人難以置信的複雜和瘋狂的過程...但告訴我無論如何 – Alex 2014-11-23 13:10:03

回答

1

變化libboost_thread-MT到libboost_thread,先找到libboost_thread.so和libboost_thread.a的地址,然後進行軟鏈接到這些文件在同一個地址, 所以它應該是:

ln -s /...libboostSourceFiles.../libboost_thread.so /..RequestTOmtFiles.../libboost_thread-mt.so 

它適用於其他libboost -mt文件,比如序列化,iostreams,程序選項

相關問題