2013-05-07 101 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