目录
- 问题描述
- 简单的测试代码
- 报错及解决
问题描述
在windows上用vscode编写c++代码进行编译时,一直上报error: ‘thread’ is not a member of 'std’的错误,搜索该错误上报都是说c++版本不匹配,然后我在task.json里面添加了-std=c++11之后还是报错,再就没找到有用信息了,决定写个blog记录下解决方法。避免后续踩坑。
简单的测试代码
#include <iostream>
#include <thread>
void thread_function() {
std::cout << "Hello from thread!\n";
}
int main() {
std::thread t(thread_function);
t.join();
return 0;
}
编译参数:
g++.exe -std=c++17 test.cpp -o main
报错及解决
报错信息:
然后检查了g++的版本
MinGW-64最新的版本,怀疑是不是最新版本不支持,然后去MinGW官网下载了7点几的版本,
还是报同样的错误,然后想了想不是版本的原因,和下载mingw64的thread类型有关,之前都是选择WIN32的,换成posix的就ok了,能正常编译运行通过,
g++.exe (x86_64-posix-sjlj-rev0, Built by MinGW-W64 project) 8.1.0 亲测可用