1. VScode 在使用多线程类#include<thread>的时候出现"htread is not a member of 'std' ",如图所示:
2.产生原因
这是因为MinGW没有thread类,对于跨平台的线程实现,GCC标准库似乎依赖于gthreads/pthreads库。如果这个库不可用,就像MinGW一样,std::thread、std::mutex、std::condition_variable类不会被定义。然而,各种可用的helper类仍然定义在系统头文件中。因此,这个实现没有重新定义它们,而是包含了这些头文件。
3.解决办法
https://github.com/meganz/mingw-std-threads
在github上能够找到MinGW-std-threads,这个文件中包含MinGW.mutx.h, MinGW .thread.h文件并把它们放到全局MinGW目录下就可以修复了这个问题。
将上述下载的文件解压,解压之后将里面的文件放到:
4.解决之后运行代码
1.需要将头文件#include<thread> 改为 # include<mingw.thread.h>