使用Boost线程的c++链接器错误
C++ linker error using Boost Thread
试图构建一个标准的Boost::线程示例,我在互联网上找到,我得到Boost头文件thread_data.hpp抛出的多个错误,我不直接链接到,但我认为得到Boost链接。(我在实际的程序中也得到了相同的错误,但我使用示例代码来确保这不是我的代码的问题。)
下面是我在boost::thread教程中找到的示例代码: #include <iostream>
#include <boost/thread.hpp>
#include <boost/date_time.hpp>
void workerFunc()
{
boost::posix_time::seconds workTime(3);
std::cout << "Worker: running" << std::endl;
// Pretend to do something useful...
boost::this_thread::sleep(workTime);
std::cout << "Worker: finished" << std::endl;
}
int main(int argc, char* argv[])
{
std::cout << "main: startup" << std::endl;
boost::thread workerThread(workerFunc);
std::cout << "main: waiting for thread" << std::endl;
workerThread.join();
std::cout << "main: done" << std::endl;
return 0;
}
下面是我的构建命令:
mingw32-g++.exe -LC:projectsboostlib -o binDebugGuardian.exe objDebugScratch.o -lboost_filesystem-mgw47-mt-1_53 -lboost_date_time-mgw47-mt-1_53 -lboost_system-mgw47-mt-1_53 -lboost_thread-mgw47-mt-1_53
(注意I am连接了boost。线程图书馆。)
下面是抛出的第一个错误: C:projectsboostincludeboost-1_53boostthreadwin32thread_data.hpp|123|undefined reference to `_imp___ZTVN5boost6detail16thread_data_baseE'|
在CodeBlocks中,我被指向头文件thread_data.hpp的第123行作为错误的来源:
//#if defined BOOST_THREAD_PROVIDES_INTERRUPTIONS
, interruption_handle(create_anonymous_event(detail::win32::manual_reset_event,detail::win32::event_initially_reset))
, interruption_enabled(true)
我忘记链接库了吗?我一直在使用Boost没有问题,直到现在我试图使用线程库。我是Boost的新手,不知道是什么导致了这个错误。
尝试添加-lpthread到链接器
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- Visual Studio mkl_link_tool.exe链接错误
- C++ 实现模板单例类时出现链接错误
- 使用类模板的方法链接错误
- MySQL C++连接器链接错误
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 运行 C++ 单元测试时LNK2005链接错误
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 链接错误,包括我创建的相同头文件 - C++
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 使用标头保护的多个定义链接错误
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 使用 Vivek 的 Vcam / 捕获源过滤器构建/链接错误
- 升压program_options中的链接错误
- 使用 g++ 预处理器进行替换会导致链接错误
- 在调试配置中编译工作正常,但发布会给出链接错误
- 相邻矩阵设置链接错误
- 包含常量变量并包含在多个文件中的标头的链接错误
- C++链接错误,我理解但无法解决
- 是什么导致macOS Mojave上的GoogleTest链接错误