c++ - Boost (1.50.0) 与 MinGW 链接的线程库

标签 c++ boost linker mingw

我正在尝试链接 boost 1.50.0 的线程库,但遇到了一些问题。问题是找不到线程的实现。

我已经在这里、随机站点和官方手册上进行了检查,得出的结论是这只有一个原因(因为我链接的实际库包含正确的文件)。 MinGW 中没有自动链接。这意味着可能没有可用线程的平台实现(因此会出现错误)。

我遇到的错误之一是:

对`imp__ZN5boost6thread4joinEv' 的 undefined reference

来自 myTread.join()

所以我的问题是,除了 boost 线程库(在本例中名为 libboost_thread-mgw46-mt-1_50.a)之外,我还需要链接什么库?

此外,是否有关于 boost 中所有库依赖项的文档?

我当然可能完全错了,所以感谢您的帮助!

目前我只链接 boost 库;线程、计时和系统。

编辑

为了澄清,我正在使用以下命令进行链接:

g++ -LPATH_TO_BOOST\lib -o test-boost-thread.exe src\test-boost-thread.o -lboost_thread-mgw46-mt-1_50 -lboost_chrono-mgw46-mt-1_50 -lboost_system-mgw46- mt-1_50

我试过改变图书馆的位置,但这没有帮助。

最佳答案

在您的情况下,给定您发布的文件名,链接器行将是 -lboost_thread-mgw46-mt-1_50(删除 lib。 a/.so/.lib)。可能有(或者您可能想创建)指向它的符号链接(symbolic link),如 libboost_thread.a -> libboost_thread-mgw46-mt-1_50.a,在这种情况下,您可以使用较短的 -lboost_thread.

关于c++ - Boost (1.50.0) 与 MinGW 链接的线程库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11513710/

相关文章:

c++ - atexit() 与独立的 CLang 未定义

c++ - OS X 上缺少 Boost 调试符号

c++ - 静态符号弱或强

c++ - 将类型隐藏在类中并在内部使用

c++ - 在另一个 objectB 中创建 objectA 时,objectA 是否是 objectS 的本地对象,并且 objectS 是否存在于对象实例化之外?

c++ - 递归正则表达式与boost匹配

c++ - boost::multiprecision:乘以或除以 10 的巨大幂的最便宜的方法是什么?像 10 次幂的位移运算符之类的东西?

android - 如何在 Android 的动态链接器中启用调试输出?

c++ - QSqlDatabase : QMYSQL driver not loaded on Ubuntu 15. 04 64位

c++ - 通过类构造函数初始化一个成员变量STL vector