2013-07-12 3 views
3

J'essaie de compiler une source C++ 11 avec mingw sous Linux pour Windows. Le code utilise std :: thread.cross-compilation de threads C++ 11 avec mingw sur linux

Quand je compile je reçois toujours des erreurs:

$ ../mingw/cross/bin/i686-w64-mingw32-g++ -std=c++11 -I include/ test.cpp -lstdthread -otest 
In file included from test.cpp:4:0: 
... 
error: 'thread' in namespace 'std' does not name a type 
... 

Je possible d'activer C++ 11 threads dans MinGW? Le code compile sans aucun problème avec le g ++ local.

Merci,

regars Kevin

-Edit-

Je viens de télécharger le MinGW quelque part dans l'Internet, parce que je l'ai essayé d'obtenir une aussi nouvelle que la version possible:

../mingw/cross/bin/i686-w64-mingw32-g++ -v 
Using built-in specs. 
COLLECT_GCC=../mingw/cross/bin/i686-w64-mingw32-g++ 
COLLECT_LTO_WRAPPER=/home/bmeier/source/mingw/cross/bin/../libexec/gcc/i686-w64-mingw32/4.8.1/lto-wrapper 
Target: i686-w64-mingw32 
Configured with: /home/drangon/work/mingw-w64-dgn_32/source/gcc-4.8.1/configure --target=i686-w64-mingw32 --disable-nls --disable-multilib --with-gmp=/home/drangon/work/mingw-w64-dgn_32/build/for_cross --with-mpfr=/home/drangon/work/mingw-w64-dgn_32/build/for_cross --with-mpc=/home/drangon/work/mingw-w64-dgn_32/build/for_cross --with-isl=/home/drangon/work/mingw-w64-dgn_32/build/for_cross --with-cloog=/home/drangon/work/mingw-w64-dgn_32/build/for_cross --enable-languages=c,c++,objc,obj-c++ --disable-libstdcxx-pch --prefix=/home/drangon/work/mingw-w64-dgn_32/cross --with-sysroot=/home/drangon/work/mingw-w64-dgn_32/cross 
Thread model: win32 
gcc version 4.8.1 (GCC) 

concerne Kevin

+0

Est-ce que gcc prend en charge les threads C++ 11 sur mingw? – Duck

+0

Quelle version exacte de MinGW GCC utilisez-vous? Quelle est la sortie de '../mingw/cross/bin/i686-w64-mingw32-g++ -v'? Et la compilation croisée sur un système Linux est généralement plus facile (donc peut-être installer un Linux sur votre machine) –

+0

Je viens d'écrire la sortie de la version dans le post de départ. J'utilise toujours linux pour compiler croisé :-) Aussi maintenant. J'utilise xubuntu. Merci pour l'aide –

Répondre

-1

Très probablement, vous aurait oublié d'inclure en-tête de fil #include <thread>

1

Fondamentalement MinGW ne prend pas en charge les discussions sur les fenêtres voir le lien suivant: http://www.cplusplus.com/forum/windows/82461/

_GLIBCXX_HAS_GTHREADS Plus précisément n'est pas définie et le fil de classe dans le fil d'en-tête nécessite que ce dernier . (Il est construit sur gthreads).

Vous devriez essayer d'utiliser boost :: thread pour une classe de fil compatible win/linux

Questions connexes