我有一個嚴重的問題與Boost 1.52.0。鏈接到Boost線程庫失敗
在Eclipse中,我總是得到:
boost/thread/detail/thread.hpp:223: undefined reference to `boost::thread::start_thread()
當然我使用lboost_system
,並lboost_thread
,並且lpthread
和lrt
,等在鏈接庫設置。
我正在交叉編譯,除此之外的所有內容都正常工作。
這是什麼造成的?我該如何調查?我卡住了。
鏈接器的命令是:
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
謝謝。
它應該是'boost_system',而不是'lboost_system'。這是GCC需要使用'-lboost_system'(但又是'lboost_system')來調用,這意味着它將在指定的庫搜索路徑中查找'libboost_system.so'或'libboost_system.a'。顯示Eclipse實際調用GCC的命令行。 – 2013-05-07 23:02:41
實際命令是: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
boost_thread位於哪裏? – 2013-05-07 23:10:10