2

我正在尝试链接 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

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

4

2 回答 2

0

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

于 2012-07-16T22:55:11.370 回答
0

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

虽然奇怪的错误。

于 2012-07-16T23:08:22.030 回答