Windows 下无法使用 C++11 标准 thread 类
问题描述
最近需要在 windows 平台使用 C++ 多线程编程,编译时提示错误 thread is not a member of std, or you maybe forget '#include <thread>'
下面是出现此问题的环境背景:
- 已经添加 thread 头文件
- 编译时已添加 -pthread 参数
- MinGW 版本为 (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0,支持多线程
解决方法
导致这个问题的原因是 MinGW GCC 缺少 C++11 标准的线程类实现,需要从 github 下载相关的头文件,重新编译即可使用线程库。

将上述头文件下载完成后放入本地 MinGW 环境中,我的路径是:./mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/
使用方法
#include <iostream>
#include <mingw.thread.h>
void read() {
std::cout << "Success!" << std::endl;
}
int main(int argc, char* argv[]) {
std::thread th(read);
}
编译命令:g++ main.cpp -o main -pthread -std=c++11
执行:./main.exe
参考文章
[1] C++11 thread类在windows上无法使用。std 没有成员 thread、thread not member of std
Windows 下无法使用 C++11 标准 thread 类的更多相关文章
- Java Windows下读取注册表的工具类
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- 在Windows下搭建C++11 编译环境(附下载,包括mingw-build,TDM-GCC, nuwen MinGW Distro)
由于现实的一些原因,并不是所有人都能很方便的享受到C++11 特性.特别是C++ Primer 第五版 和 The C++ Programming Language 第四版等全面C++ 11 铺开以后 ...
- Winio驱动在64位windows下无法使用的解决方法
C#在使用WinIo的驱动开发类似按键精灵一类工具的时候,需要对相关的驱动进行注册才能正常启动,找了下资料,资料来自: http://jingyan.baidu.com/article/642c9d3 ...
- Windows下MySQL8.0.11.0安装教程
1.mysql下载地址:https://dev.mysql.com/downloads/installer/ 2.下载安装MySQL 8.0.11.0 https://cdn.mysql.com//D ...
- windows 下安装MySQL 服务无法启动类问题
解决方案: 1 执行 mysqld.exe -nt remove 2 执行 mysqld --initialize(中间是两个中划线) 3 执行 mysqld.exe -nt install 4 执行 ...
- Go交叉编译(Go语言Mac/Linux/Windows下交叉编译)
Go交叉编译(Go语言Mac/Linux/Windows下交叉编译) 2019/11/21 Chenxin 在很多时候,由于开发的方便,会有这样的场景出现,使用Mac开发或使用Windows开发,需要 ...
- python 全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)
昨日内容回顾 线程什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的 一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的在当 ...
- python全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)
昨日内容回顾 线程 什么是线程? 线程是cpu调度的最小单位 进程是资源分配的最小单位 进程和线程是什么关系? 线程是在进程中的一个执行单位 多进程 本质上开启的这个进程里就有一个线程 多线程 单纯的 ...
- Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)
后记: 由于自己low,没有下载罪行的python3.2导致编译上遇到种种问题,后文可以参考,建议看: <Windows7 VS2015 下编译 PythonQt3.2> https:// ...
- Windows下PythonQt编译(vs2015+Qt5.11.2+PythonQt 3.2)探索
时间:2018年10月20日 笔者最近在做Qt方面的开发工作,需用到脚本程序对程序内部进行扩展,就很自然的想到了PythonQt,下面介绍PythonQt在Windows下的的安装编译心得,水平有限, ...
随机推荐
- C语言初级阶段8——预处理
C语言初级阶段8--预处理 预定义符号 1.概念:预处理是编译之前做的一些事. 2.常用的预定义符号: 注意:: (1)-(4)的格式占位符都用%是,如:printf("%s",D ...
- Vue+SSM+Element-Ui实现前后端分离(2)
前言:后台使用ssm搭建,对以前学习知识的一个回顾,与此同时来发现自己不足.这里主要采用配置文件方式进行,有部分注解. 目标:搭建ssm框架,并测试成功:(其中也有aop切面的编写) 一.开发工具 I ...
- 【Unity】使用dmp文件定位Player崩溃原因
写在前面 如果在Player运行时突然崩溃,仅靠Player.log日志文件不能定位引起崩溃的代码,那么可以尝试利用dmp(仅限Windows平台)文件定位崩溃原因. 正文 环境 Unity 2020 ...
- 第二次python作业
#3.1 print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n") number = int(input("请输入你认为符合条件的数: & ...
- centos7离线安装软件和软件包组
需求: 在一个只有内网的服务器中安装某些需要进行源码编译的软件,并且该软件具有大量的依赖,最坑的是服务器只安装了基本的软件,现在需要手动将Development Tools软件包组安装到该服务器,然后 ...
- RabbitMQ博文收藏
RabbitMQ基本概念 消息队列之 RabbitMQ
- 记录一次HAWQ手工启动
一.环境变量初始化 使用hawq的命令必须先进行环境变量的初始化 命令不能以 root 用户执行,应该以 gpadmin 用户执行 source /usr/local/apache-hawq/gree ...
- CentOS7 进入修复模式的办法
有时候配置Centos文件修改错误会导致系统无法登录,可以通过修复模式进行单用户运行模式,进行修复. 具体操作如下: 1.重启服务器,在选择内核界面使用上下箭头移动 2.选择内核并按"e&q ...
- echarts 玫瑰图+中间文字
option = { tooltip: { trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)' }, title: { text: ...
- unittest框架基本使用
1.简介 unittest是python内置的单元测试框架,具备编写用例.组织用例.执行用例.输出报告等自动化框架的条件.使用unittest前需要了解该框架的五个概念: 即test case,tes ...