Erreur MinGW: 'thread' n'est pas membre de 'std'
Je suis en train de cross-compiler pour Windows est une application simple:
#include <thread>
void Func(){
return;
}
int main(){
std::thread thr1(Func);
thr1.detach();
return 0;
}
Et c'est ce que j'obtiens:
$ 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
En fait, ce code n'ont pas ce problème si compiler avec g++ pour Ubuntu; mais j'ai besoin de cross-compiler pour Windows, et là je suis coincé.
source d'informationauteur Hi-Angel
Vous devez vous connecter pour publier un commentaire.
Cette erreur signifie que la STL que vous utilisez ne contiennent pas toutes les fonctionnalités de C++11.
Pour accéder à C++11 fils dans Windows, vous aurez besoin d'une version de Mingw avec posix threads. Ici vous pouvez trouver Mingw-Construit v4.8.1: http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/64-bit/threads-posix/sjlj/
Il y a déjà une meilleure option:
https://github.com/meganz/mingw-std-threads
C'est un léger win32 natif de mise en œuvre de l'un des plus utilisés de filetage et de synchronisation de C++11 classes de MinGW. Ils sont mis en oeuvre dans un en-tête de la seule bibliothèque qui peut co-exister avec le système libs. Il prend en charge Windows XP, ce qui n'est pas directement analogique de variables conditionnelles.