2013-05-07 90 views
0

我有一個嚴重的問題與Boost 1.52.0。鏈接到Boost線程庫失敗

在Eclipse中,我總是得到:

boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread() 

當然我使用lboost_system,並lboost_thread,並且lpthreadlrt,等在鏈接庫設置。

我正在交叉編譯,除此之外的所有內容都正常工作。

這是什麼造成的?我該如何調查?我卡住了。

鏈接器的命令是:

arm-linux-gnueabihf-g++ -L"libs" -L"/usr/arm-linux-gnueabihf/lib" -o "Logics" ./src/Logics_all.o -lpthread -lsqlite3 -lssl -lcrypto -lrt -lboost_system -lboost_thread 

如果我運行:

nm libboost_thread.so | grep start_thread 

我只得到:

0000b3f0 T _ZN5boost6thread21start_thread_noexceptERKNS_17thread_attributesE 
0000b4b0 T _ZN5boost6thread21start_thread_noexceptEv 

謝謝。

+1

它應該是'boost_system',而不是'lboost_system'。這是GCC需要使用'-lboost_system'(但又是'lboost_system')來調用,這意味着它將在指定的庫搜索路徑中查找'libboost_system.so'或'libboost_system.a'。顯示Eclipse實際調用GCC的命令行。 – 2013-05-07 23:02:41

+0

實際命令是:arm-linux-gnueabihf -g ++ -L「libs」-L「/ usr/arm-linux-gnueabihf/lib」-o「Logics」./src/Logics_all.o -lpthread -lsqlite3 -lssl - lcrypto -lrt -lboost_system -lboost_thread – Daniel 2013-05-07 23:08:32

+0

boost_thread位於哪裏? – 2013-05-07 23:10:10

回答

0

它終於成功了,我下載了整個boost庫並重建了一切。

現在它編譯沒有任何問題。

謝謝你們倆。

+0

我也有類似的問題。所有問題的答案是安裝sudo apt-get install libboost-all-dev,然後在IDE鏈接器中使用boost_thread。這對我有效。 – 2014-02-10 13:46:18