Tout d'abord, voir Statut du support expérimental de C++11 dans GCC 4.8 . Une seule proposition n'est pas encore officiellement mise en œuvre. Ensuite, jetez un coup d'œil à État d'avancement de la mise en œuvre de C++11 dans libstdc++
. Comme vous pouvez le constater, certaines fonctionnalités doivent encore être mises en œuvre. Néanmoins, nous pouvons affirmer que le support de C++11 dans GCC est plus ou moins complet et utilisable.
Maintenant, en ce qui concerne Windows : probablement le meilleur portage de GCC que je considère personnellement comme une qualité de production est MinGW-w64 . Vous pouvez le télécharger aquí . La dernière version actuelle est basée sur GCC 4.8.1 (4.8.2 sort cette semaine je pense). Elle supporte déjà std::thread
. De plus, il offre toutes les variations possibles :
- Cibles 64 bits ;
- Cibles 32 bits ;
- Win32 threads ;
- Les threads POSIX ;
- Exceptions SEH ;
- Les exceptions DWARF ;
- Exceptions SJLJ.
NOTE : Soyez prudent lors du choix de la distribution à télécharger : pour le std::thread
pour fonctionner vous avez besoin de celui avec les threads POSIX.
De plus, je confirme que j'ai construit moi-même Qt 4.8.4 et 4.8.5 de nombreuses fois et que j'ai même ciblé le 64 bits avec cette chaîne d'outils. Mais ce n'est pas tout, voici une liste de quelques points forts que j'ai personnellement construit avec MinGW-w64 jusqu'à présent :
Je pense qu'être capable de construire des bases de code aussi énormes et diverses que des cibles 64 bits avec le bon vieux GCC pour Windows est un exploit miraculeux de l'équipe de développement de MinGW-w64. Cela prouve une fois de plus la qualité de la chaîne d'outils.
Qt 5
J'ai récemment construit Qt 5.1.1 en utilisant MinGW-w64 4.8.2 pour x64. Dans l'ensemble, cela s'est bien passé, mais il y a quelques problèmes mineurs qui doivent être corrigés avant la construction. J'ai gentiment collecté tous les patchs nécessaires et automatisé tout le processus de Parcheando, construction et installation avec un simple batch Parcheando. Si vous êtes intéressé, regardez mon Qt pour Windows . L'utilisation est si simple que je ne la commenterai pas et vous laisserai simplement lire le batch script. Gardez à l'esprit que vous avez besoin de la fonction patch.exe
pour appliquer les correctifs que vous pouvez obtenir, par exemple, de MSYS ou MSYS2. Vous pouvez obtenir le code source de Qt 5.1.1 aquí .
NOTE : Je n'ai pas encore vérifié Qt 5.2.0, mais je mettrai cette réponse à jour lorsque je l'aurai fait.
À propos de MSYS2
Cette question n'a pas été posée directement, mais j'ai envie de l'ajouter ici car c'est un projet frère de MinGW-w64, et il est très utile pour tous ceux qui doivent développer des logiciels dans l'environnement Windows et qui regrettent Unix.
Ceux d'entre vous qui ont déjà utilisé l'original MSYS savent probablement quel âge ça a. Il n'a pas été amélioré depuis des lustres, et tous les utilitaires Unix qui s'y trouvent sont déjà terriblement dépassés.
Les gars qui fournissent des builds de MinGW-w64 (listés ci-dessus), fournissent maintenant aussi des builds de MSYS2 que vous pouvez télécharger aquí . Récemment, il est sorti de la version bêta, alors n'oubliez pas de consulter la dernière version. Il est construit pour les architectures x86 et x64 (avec la chaîne d'outils MinGW-w64 elle-même). Tous les utilitaires sont mis à jour dans leurs dernières versions. Par exemple, vous pouvez déjà profiter de choses comme : Bash 4.2, Make 3.99, Git 1.8.4, et bien d'autres encore, qui fonctionnent en mode natif sous Windows !
Une histoire courte au-delà de MinGW-w64
L'original MinGW a été très lent à s'améliorer, et ses développeurs n'ont même pas envisagé d'ajouter la prise en charge de la génération de cibles 64 bits. Un type ambitieux, Kai Tietz, l'a repris et l'a bifurqué car son entreprise avait besoin de construire des cibles 64 bits sous Windows. C'est ainsi que le projet MinGW-w64 est né. Bien que l'objectif premier était d'ajouter le support 64 bits, les développeurs ont amélioré la chaîne d'outils sous de nombreux aspects et ont traité un grand nombre d'autres problèmes. Depuis lors, le projet MinGW-w64 s'est développé et est maintenant loin devant MinGW en termes de qualité. Lorsque MinGW-w64 a proposé à MinGW de rejoindre les maisons et travailler ensemble, les développeurs de MinGW ont montré une réaction inadéquate et ont refusé de coopérer. En conséquence, il existe aujourd'hui 2 projets au nom similaire, ce qui prête parfois à confusion, mais les différences de qualité et de support parlent d'elles-mêmes.