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