Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quel est votre compilateur C/C++ préféré ? Comment choisissez-vous votre compilateur ? Partagez avec nous vos expériences !

Le , par LittleWhite

0PARTAGES

9  0 
Quel est votre compilateur C/C++ préféré ?
Bonjour à tous,

Avec les évolutions des normes du C et du C++, le choix du compilateur et même de sa version sont devenus un point important dans un projet de développement. Notamment, certains développeurs pouvaient être exaspérés du manque du support des dernières versions du C++ dans le compilateur de Microsoft, Visual C++. L'arrivée de Clang a apporté un renouveau dans le monde des compilateurs : l'équipe est très réactive pour implémenter les nouveautés du langage et sa modularité permet bien plus, et cela, plus facilement que GCC.


C'est pourquoi je souhaite vous poser cette question aujourd'hui. Quel est votre compilateur C/C++ préféré ? Avez-vous remplacé GCC par Clang ? Êtes-vous un inconditionnel de Visual C++ ? Utilisez-vous le compilateur d'Intel pour ses capacités d'optimisation ?

Nous avons la chance de pouvoir choisir entre plusieurs compilateurs. Tous sont bons et chacun possède ses avantages et ses inconvénients. Le choix n'est pas anodin lorsque nous savons que c'est l'outil qui générera le binaire final. Faites-vous des compromis dans votre choix ?

N'hésitez pas à nous dire en quoi vous aimez tel ou tel compilateur.

J'ai consciemment rassemblé le C et le C++ car les compilateurs C++ gèrent tout aussi bien le C.

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Iradrille
Expert confirmé https://www.developpez.com
Le 05/12/2015 à 21:16
J'utilise principalement VC++, pas parce que c'est le meilleur ni mon préféré, mais c'est simplement un des seuls à s'intégrer à Visual Studio.

Si j'avais les moyens, j'utiliserais le compilo Intel : bon support de C++11 / C++14 et des perfs dans l'ensemble meilleures que VC++.

Avec Clang qui arrive sur Visual Studio, il est possible que j'abandonne VC++, tout dépendra du support de C++11 / C++14 / C++17 (et des perfs si la différence est grande) à ce moment là.

Citation Envoyé par laerne Voir le message
On entend beaucoup parler de qualité des messages d'erreurs du compilateur de Microsoft.

Ben j'ai essayé visual studio, gcc et clang, et clang est vraiment plus clair dans la formulation des messages.
Clang est le meilleur des trois au niveau des messages d'erreurs, c'est incontestable.
Maintenant avec l'habitude, n'importe quel compilo fourni des messages clairs. Même pas besoin de lire l'erreur, rien qu'en voyant la longueur de l'erreur on sait ce que c'est .
3  0 
Avatar de azias
Membre éclairé https://www.developpez.com
Le 08/12/2015 à 9:21
Dans nos projets nous utilisons pour le moment gcc en cross-compilateur sur un linux (via jenkins) pour produire des exe windows 32bits de nos produits et aussi gcc (version mingw) sur nos PC pour le développement.

Mais je m'occupe progressivement de faire la transition vers msvc. Nous n'avons pas encore fait réellement de test de comparaison mais nos premiers essais qui nous ont amener à décider la transition ont montrés que les exe qu'on obtient sont plus petits et qu'ils sont plus rapide à l'éxécution (j'ai une différence d'au moins 30% sur un exe).

Depuis qu'il y a la version Community, nous pouvons envisager d'utiliser le compilo de Visual Studio (pas dans nos moyens sinon) et la disponiblité prochaine des outils de compilation utilisable sans installer Visual Studio est une très bonne nouvelle (nous utilons un serveur d'intégration continue et on n'a pas franchement envie d'installer tout Visual Studio sur un serveur).

Les difficultés/différences entre les deux que je rencontre sont:
  • Différence de support du C++11 (aucun des deux ne prend en charge complètement la norme, et chacun le fait différemment)
  • msvc plus strict sur certaines choses, par exemple il génère une erreur de compilation quand on veut affecter un littéral double à une variable float, ce qui n'est pas plus mal. Et d'une façon général aussi plus de warning sur les conversions implicites qui risquent de faire perdre de l'information.
  • En revanche, nos tests unitaires (en utilisant cpputest) détectent des memory leaks avec msvc qui ne sont pas présents avec gcc, en l'occurence quand on utilise des stream (stringstream ou tout simplement sur des lecture/écriture de fichiers). Apparemment l'explication c'est que windows ne libère pas immédiatement les stream de façon synchrone, mais je me retrouve obligé de désactiver la détection des memory leaks sur les fonctions en questions pour les tests passent.
  • gcc nécessite qu'on désactive certaines optimisations pour éviter certains plantages aléatoires (quand on utilise certaines fonction de Eigen), on n'a pas ce problème avec msvc.
  • msvc est assez limitant concernant le link de bibliothèques qui ont pu être compilées avec des options différentes, ça évite sans doute des erreurs mais c'est assez strict.


En ce qui concerne les options de compilation, elles sont aussi compliquées à maîtriser chez l'un que chez l'autre, après il y a une question d'habitude sans doute. Pour les compilations nous nous basons sur CMake et un serveur d'intégration continue, donc une fois les choses configurées ça roule tout seul. Pour le développement, nous utilisons Eclipse, a priori msvc est aussi censé s'intégrer avec mais je n'ai pas encore testé plus que ça, en particulier il faut voir le debugger.

Sinon une chose qui pourrait s'avérer limitant c'est tout simplement la disponiblité de bibliothèques non open-sources dans les format supportés par le compilateur (msvc étant assez strict là-dessus il faut faire attention)
2  0 
Avatar de RFManu
Membre à l'essai https://www.developpez.com
Le 16/12/2015 à 9:03
Il me semble que le compilateur C++ builder (Embarcadero), nommé BCC32 ou BCC64 devrait être dans la liste? C'est personnellement le seul que j'utilise est il fonctionne vraiment pas mal, en 32 comme en 64bits.
Bonne journée.
1  0 
Avatar de Max Lothaire
Membre confirmé https://www.developpez.com
Le 05/12/2015 à 16:32
GCC.
Je suis la plupart du temps sous linux, et ce compilateur par défaut fait le taf.

Si j'avais été sous Windows, j'aurais sans doute hésité. Est-ce que, mis-à-part qu'il soit libre, minGW a de réels avantages par rapport au compilateur de Microsoft ?
0  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 05/12/2015 à 17:52
Je n'ai pas de compilateur préféré pour C++, je prends généralement celui qui est le moins prise de tête. Sous Windows, la dernière fois où j'ai fait du Qt je n'ai pas eu d'autre choix que d'utiliser MingGW.
0  0 
Avatar de Martin Lestas
Membre éprouvé https://www.developpez.com
Le 05/12/2015 à 18:18
GCC car c'est le seul que j'ai pu essayer : pourquoi ? Car mes études me l'impose
0  0 
Avatar de laerne
Membre éprouvé https://www.developpez.com
Le 05/12/2015 à 20:51
On entend beaucoup parler de qualité des messages d'erreurs du compilateur de Microsoft.

Ben j'ai essayé visual studio, gcc et clang, et clang est vraiment plus clair dans la formulation des messages.
0  0 
Avatar de Metalman
Membre expert https://www.developpez.com
Le 05/12/2015 à 22:16
Citation Envoyé par Max Lothaire Voir le message
Si j'avais été sous Windows, j'aurais sans doute hésité. Est-ce que, mis-à-part qu'il soit libre, minGW a de réels avantages par rapport au compilateur de Microsoft ?
Ca va paraitre très stupide, mais j'ai beaucoup galéré pour faire des applications "qui fonctionnent" chez mes amis en utilisant VS... alors que MinGW n'a jamais raté.
En effet, malgré les "redistributables VC/VC++" innombrables que j'ai fourni à des amis, j'étais incapable de faire fonctionner des exécutables simples chez tout le monde simultanément. (okok j'aurais dû aller dans la section C du forum pour le dire, mais à l'époque je ne connaissais pas vraiment dev.net ! )
Ca devait venir des libs utilisées, mais bref.
Pour faire des rushs jeux vidéos, MinGW reste un choix très bon sur Windows (et la gratuité aussi, pour vendre sur steam).

Perso j'utilise énormément GCC, un peu VS, et j'ai utilisé 2 ou 3 fois icc pour voir ce que cela produisait... mais icc gratuit n'optimise que pour pentium IV "de souvenir".

Pour compléter le sondage, il faudrait ajouter le compilo Sun/Oracle et les quelques extensions IBM comme le "Metal C" (nonon ce n'est pas une metalblague de metalman)
0  0 
Avatar de born to code
Nouveau membre du Club https://www.developpez.com
Le 07/12/2015 à 10:58
Jusque la j'utilise MinGw, mais je projette d'utiliser celui que propose visual c++ en guise de comparaison.
0  0 
Avatar de captaindidou
Inactif https://www.developpez.com
Le 07/12/2015 à 16:27
J'ai pleuré lorsque j'ai constaté que CUDA n'était pas compatible avec gcc sous windows alors que sous linux, si.

Je ne veux même pas entendre parler M$ C++. ça ne m'intéresse pas.
0  0