我正在尝试链接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 的
我已经尝试过更改库的位置,但这没有帮助。
答案 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标志。设置它使它工作。
虽然有奇怪的错误。