我正在尝试创建一个线程,并使其在终端上打印一些内容。我遇到了一些问题,因此我决定采用别人编写的这段非常简单的代码,当我编译它时,出现下面列出的错误,但是其他在线用户似乎没有问题可以运行此代码。
#include <iostream>
#include <thread>
using namespace std;
void hello_world()
{
cout << "Hello from thread!\n";
}
int main()
{
thread threadobj1(hello_world);
threadobj1.join();
return 0;
}
编译器(Windows 10上的Mingw32-gcc-g ++-bin 8.2.0.3)出现以下错误:
.\multiT.cpp: In function 'int main()':
.\multiT.cpp:13:5: error: 'thread' was not declared in this scope
thread threadobj1(hello_world);
^~~~~~
.\multiT.cpp:13:5: note: 'std::thread' is defined in header '<thread>'; did you forget to '#include <thread>'?.\multiT.cpp:3:1:
+#include <thread>
.\multiT.cpp:13:5:
thread threadobj1(hello_world);
^~~~~~
.\multiT.cpp:14:5: error: 'threadobj1' was not declared in this scope
threadobj1.join();
^~~~~~~~~~
.\multiT.cpp:14:5: note: suggested alternative: 'thread_local'
threadobj1.join();
^~~~~~~~~~
thread_local
我希望有人可以帮助我弄清楚为什么这对我不起作用,错误说我应该包括,但是我显然已经这样做了,所以现在有点迷路了。我已经尝试安装“ mingw32-pthreads-w32-dev”软件包,因为这些软件包尚未安装,但没有任何区别。我还向编译器添加了以下参数:
g++ -std=c++14 -pthread .\multiT.cpp
答案 0 :(得分:1)
对于其他正在处理此问题的人:最简单的解决方案是下载mingw-64并改用其编译器。
然后使用LIKE '%\"Blogger\"%'
或-std=gnu++11
参数来启用对ISO C ++ 2011标准的支持以及对线程的扩展支持(请注意:此支持目前处于试验阶段,尽管并没有给我带来任何好处)。到目前为止的问题)。