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

时间:2012-07-16 22:49:21

标签: c++ boost linker mingw

我正在尝试链接boost 1.50.0的线程库并遇到一些问题。问题是无法找到线程的实现。

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

我得到的一个错误是:

imp __ ZN5boost6thread4joinEv'

的未定义引用

来自 myTread.join()

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

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

我当然可能完全错了,所以任何帮助都会受到赞赏!

Currenty我只链接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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

虽然有奇怪的错误。