2009-10-14 21 views
3

Actuellement, MinGW n'installe que la série 3.x.x du compilateur gcc par défaut. Cependant, il semble que la série 4.x.x des compilateurs est sortie depuis un certain temps, et en tant que others have mentioned, cela semble fonctionner correctement. Y a-t-il une raison pour laquelle il n'a pas encore été déplacé vers les versions 4.x.x, et une raison pour laquelle je ne devrais pas utiliser les versions plus récentes de gcc?Pourquoi les compilateurs de la série gcc 4.x.x ne sont-ils pas installés par défaut par MinGW?

Répondre

2

L'ABI C++ de GCC4 a changé de GCC3, et il inclut beaucoup de nouvelles fonctionnalités (comme sa vectorisation arborescente) que beaucoup de gens considèrent encore comme "expérimentales". Il y a encore quelques distributions Linux qui utilisent encore GCC3 pour cette raison.

+3

Le principal changement de C++ ABI était comme en 2001. Environ 10 ans se sont écoulés. DIX ANS! Pourquoi ne pouvez-vous pas vous entendre? –

+1

Lorsque gcc prend entièrement en charge C99, nous pouvons peut-être nous plaindre valablement que les gens ne devraient pas encore utiliser un ABI remplacé il y a 10 ans. –

+0

Je suis au courant d'au moins 3 changements ABI depuis GCC-2.95: 3.0, 3.3 et 4.0. Je ne sais pas exactement ce qui a changé, seulement que quelque chose a changé. Jerry a noté que le mécanisme d'exception était parmi ces changements. – greyfade

3

Le problème semble être qu'ils ont modifié le mécanisme de gestion des exceptions d'une manière qui casse l'ABI. Cela signifie que vous ne pouvez pas (par exemple) déposer dans le nouveau compilateur et continuer à utiliser d'anciens fichiers objets et/ou bibliothèques. Vous devez tout re-compiler à partir du code source pour obtenir des résultats de travail à tous.

+3

et le problème est? :) –

+0

La prise en charge de GCC pour Windows n'est pas aussi forte, donc il y a probablement des bugs cachés, donc jusqu'à ce qu'ils se sentent plus stables, ils restent fidèles. – rogerdpack

4

Le programme d'installation TDM GCC/MinGW32 builds inclut gcc 4.4.x et tous les packages binaires de base requis pour le développement Windows de base, y compris gdb. Il est largement utilisé sans problèmes inhabituels.