You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MinGW9.2.0编译C++ OpenMP代码报std::this_thread、chrono未声明错误

问题根因及解决方案

1. 代码语法错误修复

你代码中使用chrono::seconds时未指定所属的std命名空间,<chrono>头文件的所有接口都归属std命名空间,需要修改为std::chrono::seconds。
修改后的对应代码行如下:

std::this_thread::sleep_for(std::chrono::seconds(20000));

2. MinGW环境问题修复

你使用的MinGW.org官方发布的GCC 9.2.0默认采用win32线程模型,该模型版本的GCC没有实现C标准库的std::thread、std::this_thread等线程相关接口,这也是你指定C11/14/17标准都无法解决问题的核心原因,和编译参数无关,属于编译器本身的功能缺失。
可选解决方案二选一:

  • 方案A:替换编译器版本
    更换为采用posix线程模型的MinGW-w64版本,可通过MSYS2安装或直接下载MinGW-builds的posix线程版本GCC,该版本完整实现了C++标准线程库,修复代码语法后直接使用原有编译命令即可正常编译。
  • 方案B:适配现有MinGW版本
    不使用C++标准线程库的休眠接口,替换为Windows原生API,修改如下:
    1. 头文件添加#include <windows.h>
    2. 休眠代码行替换为Sleep(20000 * 1000);(Windows的Sleep接口参数单位为毫秒,且首字母大写)
      修改后不需要依赖std::this_thread相关接口,现有MinGW版本可直接编译运行。

内容的提问来源于stack exchange,提问作者Marius Magaud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:39:04