使用 libboost_thread 构建应用程序失败
Posted
技术标签:
【中文标题】使用 libboost_thread 构建应用程序失败【英文标题】:Failed to build app using libboost_thread 【发布时间】:2016-06-09 13:05:22 【问题描述】:我跟着get started构建安装boost 1.61.0
到mypath-to-boost
,然后在下面尝试使用libboost_thread
,
// mythread.cpp
#include <boost/thread.hpp>
void a_thread()
int main()
boost::thread ta_thread;
建设mythread.cpp
,
$ g++ mythread.cpp -std=c++11 -Imypath-to-boost -lboost_thread -Lmypath-to-boost/lib
然后出现错误,
/usr/bin/ld: warning: libboost_system.so.1.61.0, needed by mypath-to-boost/lib/libboost_thread.so, not found (try using -rpath or -rpath-link)
mythread.cpp: undefined reference to `boost::system::generic_category()'
...
检查libboost_thread
,
$ ls -l mypath-to-boost/lib/*thread*
然后找到库,
libboost_thread.a
libboost_thread.so -> libboost_thread.so.1.61.0
libboost_thread.so.1.61.0
那么导致构建失败的问题是什么?
【问题讨论】:
【参考方案1】:您需要将boost_system
库添加到链接线...
【讨论】:
附带问题:如果函数a_thread
放在main
后面,则无法编译上面的源代码。 gcc
抱怨太多,为什么?以上是关于使用 libboost_thread 构建应用程序失败的主要内容,如果未能解决你的问题,请参考以下文章
使用 androiddeployqt 为 android 构建 Qt 应用程序时出现 Gradle 构建错误
使用 Visual Studio 9 构建的命令行应用程序不会将 *.NEF 作为输入,而使用 gcc 构建的相同应用程序会 - 为啥?