使用 libboost_thread 构建应用程序失败

Posted

技术标签:

【中文标题】使用 libboost_thread 构建应用程序失败【英文标题】:Failed to build app using libboost_thread 【发布时间】:2016-06-09 13:05:22 【问题描述】:

我跟着get started构建安装boost 1.61.0mypath-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 构建的相同应用程序会 - 为啥?

构建使用 Flash SDK 2 构建的遗留项目

如何使用 PythonQt 构建程序?

使用命令行界面为KONY应用程序构建UWP包