【问题标题】:Boost (1.50.0) Thread Library Linking with MinGWBoost (1.50.0) 线程库与 MinGW 的链接
【发布时间】:2012-07-16 22:49:20
【问题描述】:

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

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

我遇到的错误之一是:

对`imp__ZN5boost6thread4joinEv'的未定义引用

来自 myTread.join()

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

此外,对于 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

我尝试过更改库的位置,但没有帮助。

【问题讨论】:

    标签: c++ boost linker mingw


    【解决方案1】:

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

    【讨论】:

    • 正如我在问题中发布的那样,库是 boost_thread-mgw46-mt-1_50。但这不包含线程的平台实现吗?
    【解决方案2】:

    嗯,我好像完全忘记了 BOOST_THREAD_USE_LIB 标志。设置它使其工作。

    奇怪的错误。

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多