IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Choix d'un Compilateur ?


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Choix d'un Compilateur ?
    Bonjour

    D'après vous quel serait le meilleur choix de compilateur C++ sur PC pour créer des programmes sous Windows ? (faut-il prévoir de payer des droits si on vends des programmes réalisés avec le compilateur?)

    Serait-il aussi le meilleur pour créer des 'codes compilés' utilisables en interaction avec d'autres languages comme Python ou Ruby ?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Commence par GCC.
    Boost ftw

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Le leader du marché sous windows est Visual C++. Une version d'entrée de gamme (nommée express) gratuite existe.

    Il existe aussi gcc qui est totalement libre et existe aussi sous d'autres environnements. Selon la version que tu utilises sous windows, il est plus ou moins à jour.

    Citation Envoyé par Devland Voir le message
    (faut-il prévoir de payer des droits si on vends des programmes réalisés avec le compilateur?)
    Non, bien heureusement.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    (faut-il prévoir de payer des droits si on vends des programmes réalisés avec le compilateur?)
    Non, bien heureusement.
    Si tu vends des programmes compilé avec visual studio, il te faut une licence visual studio, non ? (express est pour le non commercial/éducatif uniquement il me semble).

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut
    Bonjour,
    Citation:
    (faut-il prévoir de payer des droits si on vends des programmes réalisés avec le compilateur?)
    Non, bien heureusement.
    Je confirme, on peut vendre des applications développées avec visual C++ express.
    Source : http://cplus.about.com/od/softwarere...r/vcee2005.htm
    Voici la phrase intéressante :
    Can I use Express Editions for commercial use? Yes, there are no licensing restrictions for applications built using the Express Editions.

  6. #6
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Pour information, le portage de GCC sous Windows s'appelle MinGW (Minimal GCC for Windows).

    Je suis tenté d'argumenter en la faveur de GCC, mais ça aurait toutes les chances de faire partir le sujet en troll .
    De toutes façons, les deux sont de qualité tout à fait convenable ! Même si GCC est mieux ^^

    Avec ça, je te conseille Code::Blocks comme EDI.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  7. #7
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    cygwin contient un autre portage de GCC sous Windows.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Le compilateur est en partie une affaire de goût. Visual est très laxiste vis à vis de la norme, mais a, à mon avis, un atout majeur : son debugger. gcc suit plus la norme ce qui te garantie (à peu près) que tout ce qui compile avec gcc compile avec un autre compilateur.
    Ensuite, gcc ou visual Express pour du développement sous Windows nécessitent soit l'utilisation de l'API Win32 pour les IHMs, soit l'utilisation de librairie tierce (type wxWidget). Visual C++ en version payante est fourni avec tout l'attirail des MFC, qui permettent de faire des IHMs sans d'autres librairies. Les MFC sont complexes.
    Enfin, pour utiliser gcc, il est quand même conseillé de passer par un IDE (type code::block). Visual comporte son propre IDE (Visual Studio).

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 349
    Points : 379
    Points
    379
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Le compilateur est en partie une affaire de goût. Visual est très laxiste vis à vis de la norme, mais a, à mon avis, un atout majeur : son debugger.
    Je trouve que MS s'est bien amélioré du côté du respect de la norme. On est loin du foutage de gueule de VC++ 6 de ce côté-là.

  10. #10
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Enfin, pour utiliser gcc, il est quand même conseillé de passer par un IDE (type code::block).
    Pourquoi?

    Je crois avoir essaye tous les EDI disponibles sous Linux -- en tout cas, j'en ai essaye une serie -- aucun ne s'est revele capable d'etre utilisable dans mon environnement. J'en suis toujours revenu a ce que j'utilisais en 1991: emacs + gdb sous emacs.

    Au mieux, ces essais se concluaient relativement vite: une bonne partie des EDI sont (etaient? j'ai pas envie de refaire les essais presque exhaustifs que j'ai fait il y a deux ans quand je suis passe sur Linux au boulot, j'utilisais Workshop sous Solaris avant, avec Workshop configure pour utiliser emacs comme editeur; j'ai bien ecrit Workshop, sunstudio a le meme probleme qu'eclipse d'etre d'une lenteur abominable, et en plus sous Linux dbx crashe trop souvent sur notre executable compile avec gcc pour etre utilisable) en effet incapables de traiter un projet qui ne respecte pas leur notion de ce que doit etre la structure d'un projet.

    Au pire, j'ai perdu beaucoup de temps pour me rendre compte que je n'arrivais pas a en sortir une perf adequate (eclipse par exemple, le pas a pas prenait 10s montre en main et j'ai passe pas mal de temps a chercher a le configurer).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  11. #11
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Pourquoi?
    Je corrige un peu ce que j'ai dit: Pour débuter, un IDE t'offre une 'tout-en-un' qui te simplifie la vie.
    Après pour des projets plus complexes, j'avoue pour ma part être toujours passé par les possibilités d'extensions des éditeurs, éventuellement du makefile à la main, et une pléthore d'outils en pre ou post build. Mais, là ça dépend certainement du parcours de chacun

  12. #12
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup pour vos réponses

    Si je comprends bien si on veut faire beaucoup de développement pour Windows (Microsoft) il peut être bien de choisir un produit comme le Visual C++... surtout si on veut envisager de faire du graphisme un peu 'elaboré'...

    Si Windows n'est pas la priorité et que l'on veut une portabilité (compatibilité)plus aisée GCC peut être un choix plus judicieux...

    Merci

  13. #13
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par Devland Voir le message
    Si je comprends bien si on veut faire beaucoup de développement pour Windows (Microsoft) il peut être bien de choisir un produit comme le Visual C++... surtout si on veut envisager de faire du graphisme un peu 'elaboré'...
    Non, pas du tout.

    GCC aussi est très bien pour faire des choses très élaborées, voire mieux que Visual C++ pour certains !
    En toute objectivité, le débat est plus complexe que ça. En aucun cas on ne peut statuer sur une domination claire de l'un sur l'autre.

    Après, la portabilité du code, c'est toi qui la crée. Aucun compilateur ne t'empêchera de faire du code non-portable.
    Et faire un code uniquement compatible avec Windows, cela me semble aussi dommage que de faire un site optimisé pour Internet Explorer.

    En fait je pense plutôt que c'est une question de gout, voire de philosophie (libre/propriétaire).

    En ce qui concerne le graphisme, le choix qui importe le plus (après celui du langage, bien vu pour le C++) est à mon avis celui de la bibliothèque utilisée.
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  14. #14
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Visual C++ a un environnement de développement intégré et est réellement conçu autour, alors que GCC est un compilateur seulement, ce qui n'empêche pas d'avoir des environnements de développement qui l'utilisent.
    C'est ça, en fait, la différence principale.

    Personnellement je préfère un bon éditeur texte qu'un EDI.
    Boost ftw

  15. #15
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par Florian Goo Voir le message
    Pour information, le portage de GCC sous Windows s'appelle MinGW (Minimal GCC for Windows).

    Je suis tenté d'argumenter en la faveur de GCC, mais ça aurait toutes les chances de faire partir le sujet en troll .
    De toutes façons, les deux sont de qualité tout à fait convenable ! Même si GCC est mieux ^^

    Avec ça, je te conseille Code::Blocks comme EDI.
    Le principal avantage de Visual, c'est qu'il a un débuggeur largment meilleur que gdb, même lorsque le code est super optimisé (je ne parle même pas de l'IDE qui est au-dessus de tout ce que la concurrence peut offrir). gdb s'emmêle les pinceaux dans le backtrace quand Visual donne exactement les bonnes informations.
    Et sous Windows, je resterai toujours avec Visual (ou le compilateur Intel), sous Linux, ça sera gcc ou icc, avec ses inconvénients de débuggage.
    Citation Envoyé par 3DArchi Voir le message
    Visual est très laxiste vis à vis de la norme, mais a, à mon avis, un atout majeur : son debugger. gcc suit plus la norme ce qui te garantie (à peu près) que tout ce qui compile avec gcc compile avec un autre compilateur.
    Là, tu abuses. OK pour Visual 6, mais là on parle de Visual 9 qui ajoute même des choses qui sont dans les TR du C pour la sécurité. D'ailleurs, dans les fora, on voyait juste les gens qui râlaient que Microsoft avait décidé de mettre un accent sur la sécurité. Mais si c'était dans gcc, là, pas de problème. Faut arrêter l'égalité "tout ce que fait Microsoft" = mauvais.

    Par exemple, gcc 4.0 avait un sale bug qui empêchait le SFINAE de fonctionner correctement. Bizarrement, je n'ai jamais eu ce problème sur les compilateurs Microsoft.

  16. #16
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Le principal avantage de Visual, c'est qu'il a un débuggeur largment meilleur que gdb, même lorsque le code est super optimisé (je ne parle même pas de l'IDE qui est au-dessus de tout ce que la concurrence peut offrir).
    Tu parles de Visual 2005 ? Non, là je ne suis pas d'accord. Le debuggeur intégré est bien, mais loin d'être top. Par contre, windbg est très bien (mais aussi, complexe à utiliser). Tu parles de la pile d'appels sur le code optimisé, mon expérience est qu'elle est régulièrement fausse.

    Cela dit, il n'y a pas actuellement de bons débuggeurs pour code optimisé (ça impose d'enrichir les symboles par rapport à l'actuel, entre autres).

    Côté IDE, Kdevelop a vraiment beaucoup progressé (et le 4, encore en alpha, semble extrêmement prometteur). Le support C++ de visual laisse trop souvent à désirer (en C#, par contre, c'est super). La complétion se met régulièrement en rideau, propose des choses stupides, etc...

    Il manque aussi cruellement un équivalent de valgrind sous visual.

    Faut arrêter l'égalité "tout ce que fait Microsoft" = mauvais.
    +1

  17. #17
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Tu parles de Visual 2005 ? Non, là je ne suis pas d'accord. Le debuggeur intégré est bien, mais loin d'être top. Par contre, windbg est très bien (mais aussi, complexe à utiliser). Tu parles de la pile d'appels sur le code optimisé, mon expérience est qu'elle est régulièrement fausse.
    Comparé à ce que gdb me sort (quand il ne plante pas), c'est largment plus fiable. Quand je suis dans la fonction f1, il ne me donne pas le fichier et la ligne de al fonction f2, contrairement à gdb.

    Citation Envoyé par white_tentacle Voir le message
    Il manque aussi cruellement un équivalent de valgrind sous visual.
    Ah, tu n'as pas tout vu alors. Contrairement à valgrind qui fait de l'émulation et donc pas forcément fiable et surtout très lent, Visual Studio propose un profiler par échantillonnage et par instrumentation (http://matthieu-brucher.developpez.c...visual-studio/)

  18. #18
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Ah, tu n'as pas tout vu alors. Contrairement à valgrind qui fait de l'émulation et donc pas forcément fiable et surtout très lent, Visual Studio propose un profiler par échantillonnage et par instrumentation
    C'est seulement dans Team Suite, j'ai l'impression ? Ça explique que je ne l'ai jamais vu

    Cela dit, je pensais plus aux memory leaks qu'au profiling (les gflags et autres, ça marche, mais c'est fichtrement pénible à utiliser).

  19. #19
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    C'est seulement dans Team Suite, j'ai l'impression ? Ça explique que je ne l'ai jamais vu

    Cela dit, je pensais plus aux memory leaks qu'au profiling (les gflags et autres, ça marche, mais c'est fichtrement pénible à utiliser).
    Ah oui (j'oublie toujours que valgrind est d'abord un outil pour vérifier la mémoire ) Il y a la macro _CRTDBG_MAP_ALLOC pour aider.

  20. #20
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour les erreurs de débogage, ne pas oublier ce problème non plus.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. [Compiler] Choix d'un compilateur
    Par dukeraoul dans le forum MATLAB
    Réponses: 1
    Dernier message: 02/07/2008, 17h44
  2. Choix d'un compilateur et d'un livre pour débuter
    Par bernard13 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 23/04/2006, 08h48
  3. [Débutant] Choix d'un compilateur C/C++ complet et en francais si possible
    Par laatarmania dans le forum Choisir un environnement de développement
    Réponses: 13
    Dernier message: 31/01/2006, 13h55
  4. Choix d'un compilateur !
    Par Wolfen dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 04/11/2005, 09h51
  5. Choix d'un compilateur Windows AT&T
    Par flat dans le forum Assembleur
    Réponses: 1
    Dernier message: 05/10/2005, 19h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo