Я пытаюсь создать поток и заставить его напечатать что-то в терминал. У меня возникли некоторые проблемы, поэтому я решил взять этот очень простой кусок кода, который сделал кто-то другой, когда я его компилирую, я получаю ошибки, перечисленные ниже, но другие люди в сети, похоже, не испытывают проблем с запуском этого.
#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;
}
Компилятор (mingw32-gcc-g ++ - bin 8.2.0.3 в windows 10) выдает следующие ошибки:
.\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