gpt4 book ai didi

c++ - boost.thread - 一个简单示例中的访问冲突

转载 作者:行者123 更新时间:2023-11-28 02:19:31 24 4
gpt4 key购买 nike

我只是想运行一个非常简单的示例,该示例使用带 boost 的线程。这是代码:

#include <iostream>
#include <boost/thread.hpp>

void workerFunc()
{
std::cout << "hi" << std::endl;
}

int main(int argc, char* argv[])
{
boost::thread workerThread(workerFunc);
workerThread.join();
return 0;
}

但我得到一个异常(exception):

(boost_thread-vc140-mt-1_59.dll) in test.exe: 0xC0000005: Access violation reading location 0x0000000000000019.

尽管有异常,程序仍然运行,我可以在控制台中看到 hi。我使用 VS2015,x64 配置。我的错误在哪里?

最佳答案

显然存在未定义的行为,因为代码没有任何问题。

那么,什么错了?

构建配置、部署(运行时环境)中可能存在错误,或者两者之间不匹配。

具体来说:

  • 您可能会使用编译器版本/标志构建您的项目,使其与所使用的库二进制不兼容。
  • 您可能会链接到 1 个构建/版本的 boost 的导入库,并在运行时找到不同的版本

两个条件介绍Undefined Behaviour .任何事情都有可能发生。

关于c++ - boost.thread - 一个简单示例中的访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33035250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com