我有一个严重的问题与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