Подтвердить что ты не робот

Ошибка MinGW: 'thread не является членом' std

Я пытаюсь перекрестно скомпилировать для Windows простое приложение:

#include <thread>

void Func(){
  return;
}

int main(){
  std::thread thr1(Func);
  thr1.detach();
  return 0;
}

И что я получаю:

$ i686-w64-mingw32-g++ -static-libstdc++ -static-libgcc -pipe -g -std=c++0x ./threadstutor.cpp 
./threadstutor.cpp: In function ‘int main()’:
./threadstutor.cpp:8:3: error: ‘thread’ is not a member of ‘std’
./threadstutor.cpp:8:15: error: expected ‘;’ before ‘thr1’
./threadstutor.cpp:9:3: error: ‘thr1’ was not declared in this scope

Собственно, этот код не имеет такой проблемы, если компилировать с g++ для Ubuntu; но мне нужно перекрестно скомпилировать для Windows, и здесь я застрял.

4b9b3361

Ответ 2

Существует уже лучший вариант: https://github.com/meganz/mingw-std-threads Это легкая версия win32, использующая наиболее часто используемые классы потоковой и синхронизирующей С++ 11 для MinGW. Они реализованы в библиотеке только для заголовка, которая может сосуществовать с системными lib. Он также поддерживает Windows XP, который не имеет прямого аналога условных переменных.