前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows下C++使用thread时无法识别thread和mutex相关库的解决

Windows下C++使用thread时无法识别thread和mutex相关库的解决

作者头像
vincentbbli
发布2021-08-18 15:11:55
3.2K0
发布2021-08-18 15:11:55
举报
文章被收录于专栏:vincent随笔vincent随笔vincent随笔

问题描述

今天我在Windows下打算尝试C++多线程编程,在CLion上进行编码。CLion的C++编译器是正常的,以前也跑过好几个项目,使用其他STL库函数也正常,唯独使用thread时报无法识别的错,所有thread都划上了红线。如下图所示:

在这里插入图片描述
在这里插入图片描述

其他错误信息包括但不限于:

thread未定义 No member named ‘thread’ in namespace ‘std’; ‘thread’ undefined 找不到thread mutex contiditional_variable未定义 Use of undeclared identifier ‘thread’; did you mean ‘fread’? (fix available)

问题解决过程

  1. 因为thread和mutex是C++11才引入的,所以一开始考虑的是不是CMakeList上没有加编译选项,于是加上 set(CMAKE_CXX_FLAGS$ {CMAKE_CXX_FLAGS} -std = c ++ 11) 经过一番尝试,发现并无效果。
  2. 后来受到博客CLion安装mingw并配置以支持c++11多线程编程的启发,重新安装mingw编译器,但是不成功。 又看到博客mingw-w64安装支持c++11中thread(windows下)的操作,发现关键是在安装mingw时需要将Thread选项设为posix。重新安装mingw解决问题。
在这里插入图片描述
在这里插入图片描述

问题解决,可以愉快多线程啦

在这里插入图片描述
在这里插入图片描述

总结

不能使用thread是因为mingw的编译器不支持thread,需要重新安装mingw,安装方法在引用的两篇博客里都有。同时需要确保建立工程时使用的是C++11及以上标准。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 其他错误信息包括但不限于:
  • 问题解决过程
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档