今天我在Windows下打算尝试C++多线程编程,在CLion上进行编码。CLion的C++编译器是正常的,之前也跑过好几个项目,使用其余STL库函数也正常,惟独使用thread时报没法识别的错,全部thread都划上了红线。以下图所示:
c++
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)web
由于thread和mutex是C++11才引入的,因此一开始考虑的是否是CMakeList上没有加编译选项,因而加上
set(CMAKE_CXX_FLAGS$ {CMAKE_CXX_FLAGS} -std = c ++ 11)
通过一番尝试,发现并没有效果。编程
后来受到博客CLion安装mingw并配置以支持c++11多线程编程的启发,从新安装mingw编译器,可是不成功。windows
又看到博客mingw-w64安装支持c++11中thread(windows下)的操做,发现关键是在安装mingw时须要将Thread选项设为posix。从新安装mingw解决问题。
问题解决,能够愉快多线程啦
多线程
不能使用thread是由于mingw的编译器不支持thread,须要从新安装mingw,安装方法在引用的两篇博客里都有。同时须要确保创建工程时使用的是C++11及以上标准。ide