Configuration: J'ai installé Cygwin avec la programmation GNU (gcc, g ++, make et gdb) et j'ai compilé avec succès un programme sur lequel je travaillais. Ensuite, j'ai décidé d'installer boost dans Cygwin parce que je devrais utiliser des trucs de boost typiques pendant que mon programme se développe. Donc, en utilisant le Cyber setup.exe, j'ai installé boost. Après cela, le programme que j'avais compilé et couru avec succès ne fonctionnait plus. (Et rappelez-vous qu'il ne dépendait pas de boost.)Cygwin boost est livré avec le nouveau g ++ qui semble casser mon code ... pourquoi?
J'ai découvert que lorsque boost installé, il a également installé un nouveau compilateur, g ++ - 4.exe, alors qu'avant j'utilisais r ++ - 3.exe. Boost avait aussi lié symboliquement g ++ .exe au nouveau compilateur. Après avoir changé le lien symbolique mon ancien programme compilé correctement.
Y a-t-il une raison pour laquelle je devrais utiliser g ++ - 4 plutôt que g ++ - 3?
Wow ... c'est une bonne info. – JnBrymn
Juste pour que vous sachiez, sur la base de vos commentaires, j'ai changé les liens symboliques en g ++ - 4 et j'ai fait l'effort supplémentaire de faire fonctionner le code avec le nouveau compilateur. Dans le processus, j'ai commencé à voir certains des problèmes potentiels auxquels vous faisiez allusion. Je suis content que j'ai pris un peu de temps pour faire les choses correctement. – JnBrymn
Heureux d'entendre que ça a payé si vite. Je suis en train de faire du développement C++ avec MSVC et GCC 4.4. GCC attrape beaucoup de C++ invalide que MSVC permet. Il peut être un peu frustrant d'avoir à corriger le code "de travail", mais il attrape les problèmes plus tôt quand ils sont moins chers à réparer. Maintenant, je peux être beaucoup plus confiant que le portage vers un autre système d'exploitation, l'essai d'un nouveau compilateur, ou même simplement l'instanciation d'un modèle pour la première fois impliqueront beaucoup moins de tracas sur la route. –