Question

Quelles suggestions pour faciliter l’utilisation des compilateurs C ++ pour un débutant? Les sources libres ou à code source ouvert seraient préférées.

Était-ce utile?

La solution

GCC est un bon choix pour les choses simples.

L'édition Visual Studio Express est la version gratuite du compilateur Windows principal C ++.

Si vous êtes sous Windows, j'utiliserais VS. Si vous êtes sur Linux, vous devriez utiliser GCC.

* Je dis GCC pour des choses simples, car pour un projet plus complexe, le processus de construction n'est pas si facile

Autres conseils

G ++ est le compilateur GNU C ++. Le paquet * nix devrait avoir le paquet disponible.

Je vous recommanderais d'utiliser Dev C ++ . C'est un petit et léger IDE qui utilise les ports mingw comme backend, ce qui signifie que vous compilerez le compilateur C / C ++ de facto, gcc

Pour un débutant: g ++ --pedantic-errors -Wall

Cela vous aidera à appliquer une bonne programmation dès le début.

gcc avec -Wall (active tous les avertissements) -Werror (convertit les avertissements en erreurs), -pedantic (récupère les avertissements pour le code non standard) et -ansi (définit le c ++ 98 standard).

Si un avertissement est quelque chose dont vous êtes conscient et que vous devez désactiver, vous pouvez toujours le transformer en avertissement.

Je recommande gcc car il est conçu pour être utilisé en ligne de commande. Vous pouvez ainsi compiler des programmes simples et voir exactement ce qui se passe:

g++ -o myprogram myprogram.cc
ls -l myprogram

Un fichier en entrée, deux fichiers en sortie. Avec Visual C ++, la plupart des gens l’utilisent avec l’interface graphique, dans laquelle vous devez configurer un projet et l’EDI génère un ensemble de fichiers qui peuvent vous gêner si vous débutez.

Si vous utilisez Windows, vous aurez le choix entre MingW et Cygwin. Cygwin est un peu difficile à configurer car vous devez choisir les paquets à installer, mais je n’ai pas d’expérience avec MingW.

Vous pouvez toujours utiliser le compilateur C ++ de Gnu Compiler Collection (GCC). Il est disponible pour presque tous les systèmes Unix sur Terre, BSD, Mac OS, Linux et Windows (via Cygwin ou mingw).

Un certain nombre d'EDI prennent en charge le compilateur GCC C ++, par exemple. KDevelop sous Linux / KDE, ou Dev-CPP comme mentionné dans d'autres articles.

Microsoft Visual Studio Express Edition de leur compilateur C ++ est bon

CodeBlocks est un très bon IDE pouvant être utilisé à côté de nombreux autres compilateurs CL.EXE (de Visual Studio ) et gcc. Il vient également dans une version avec gcc inclus.

L’édition Visual Studio Express est également un très bon choix (avec Platform SDK si vous souhaitez développer une application qui appelle des fonctions winapi).

Eclipse est un bon logiciel pour mac, ou le Xcode gratuit d’Apple qui peut être supprimé de leur site de développement.

Une des raisons d'utiliser g ++ ou MingW / Cygwin qui n'a pas encore été mentionnée est que le démarrage et l'IDE masqueront une partie de ce qui se passe. Il sera extrêmement utile par la suite de comprendre les différences entre la compilation et la liaison, par exemple. Apprenez-le et comprenez-le depuis le début, et vous ne saurez même pas que vous devriez vous remercier plus tard.

-Max

Je dis GCC pour des choses simples, car pour un projet plus compliqué, le processus de construction n'est pas si facile

C'est vrai, mais je ne pense pas que comprendre le processus de construction d'un grand projet soit orthogonal à la compréhension du projet lui-même. Mon dernier emploi dans lequel je travaillais avait un énorme projet à construire pour la plate-forme cible (LynxOS) ainsi qu'un environnement d'émulation (WinXP). Ils ont choisi de tout jeter dans un fichier .VCP pour Windows et de le construire comme un seul gros exécutable. Cible, il s’agissait d’environ 50 processus individuels. Ils ont donc écrit un fichier makefile répertoriant les 3 000 fichiers sources, les ont tous compilés dans une grande bibliothèque, puis ont lié le fichier principal.cpp de chaque exécutable à la bibliothèque tout-en-un. faire 50 exécutables (qui partagent peut-être 10% de leur code avec les autres exécutables). En conséquence, aucun développeur n'avait une idée du type de code dépendant d'un autre code. En conséquence, ils ne se sont jamais souciés d'essayer de définir des interfaces claires entre eux, car tout était facilement accessible de partout . Un système de construction hiérarchique aurait pu aider à appliquer un ordre quelconque dans un référentiel de code source par ailleurs désorganisé.

Si vous n'apprenez pas comment les fichiers .cpp génèrent du code objet, ce qu'est une bibliothèque statique, ce qu'est une bibliothèque partagée, etc., lorsque vous apprenez le C / C ++, vous devez quand même l'apprendre à un moment donné. être un développeur compétent en C / C ++.

Visual Studio en ligne de commande se comporte exactement comme GCC. Ouvrez simplement la fenêtre de ligne de commande de Visual Studio et:

c:\temp> cl /nologo /EHsc /W4 foo.cpp
c:\temp> dir /b foo.*
foo.cpp  <-- your source file
foo.obj  <-- result of compiling the cpp file
foo.pdb  <-- debugging symbols (friendly names for debugging)
foo.exe  <-- result of linking the obj with libraries

Je suis d'accord avec Iulian & # 536; erb & # 259; noiu: Code :: Blocks est une très bonne solution , utilisable à la fois sous Linux (il utilisera g ++ / gcc) et sous Windows ( il utilisera soit le compilateur MS, soit gcc)

Notez que vous devriez au moins une ou deux fois essayer de compiler en utilisant un bon vieux makefile, ne serait-ce que pour comprendre la logique derrière les en-têtes, les sources, l'inclusion, etc. etc.

En tant que débutant, n'oubliez pas de lire des livres sur le C ++ (des livres de Scott Meyers et Herb Sutter vous viennent à l’esprit lorsque vous essayez d’apprendre les bizarreries de la langue) et d’étudier des projets open source de premier plan pour apprendre leur style de code (ils ont déjà rencontré les problèmes que vous allez rencontrer et ont probablement trouvé des solutions viables ...).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top