====== Les outils ====== ===== Les compilateurs C/C++ ===== ==== Sous Windows ==== Sous Windows, aucun compilateur C/C++ n'est intallé par défaut. Cependant, vous pouvez installer plusieurs compilateurs qui sont disponibles, soit de manière indépendante d'un environnement de programmation, soit au contraire avec un environnement de programmation. * [[https://visualstudio.microsoft.com/fr/vs/|Visual Studio 2022]]\\ Il s'agit d'un environnement de programmation complet incluant un éditeur, un compilateur et un débogueur performant. Le reproche principal est qu'il s'agit d'un environnement un peu riche pour débuter, même si la courbe d'apprentissage n'est pas très longue.\\ Le compilateur peut aussi être utilisé à partir d'un environnement plus léger comme notamment [[https://code.visualstudio.com/|Visual Studio Code]] pour lequel vous pouvez installer les [[https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools|outils dédiés à C++]] et qui supporte le compilateur livré dans Visual Studio 2022. * [[http://mingw-w64.org/doku.php/start|GCC/G++ pour Windows]]\\ Il s'agit d'un port de gcc que vous avez déjà utilisé durant le cours de première année sous Linux sous Windows. Vous retrouvez les outils classiques de gcc comme le compilateur et l'éditeur de liens. Il n'y a pas d'environnement de développemment. Vous pouvez par contre utiliser un environnement de développement comme par exemple [[https://www.codeblocks.org/|Code::Blocks]], ou bien [[https://www.monodevelop.com/|MonoDevelop]]. * [[https://code.visualstudio.com/docs/cpp/config-mingw|Visual Studio Code avec GCC/G++ pour Windows]]\\ Il s'agit d'une installation de G++ Mingw (cf. paragraphe précédent) avec Visual Studio Code. L'ensemble des opérations nécessaires est décrites pour pouvoir installer une configuration fonctionnelle. Vous avez toujours d'une part un compilateur G++ et d'autre part un éditeur [[https://code.visualstudio.com/|Visual Studio Code]], cependant l'intégration entre les deux est assez poussé et permet de quasiment offrir les fonctionnalités principales de [[https://visualstudio.microsoft.com/fr/vs/|Visual Studio 2022]] tout en étant beaucoup plus léger. En résumé : * deux compilateurs pouvant être facilement installés, soit [[https://visualstudio.microsoft.com/fr/vs/|Visual Studio 2022]] ou au contraire [[http://mingw-w64.org/doku.php/start|GCC/G++ pour Windows]], * plusieurs environnements de programmation [[https://visualstudio.microsoft.com/fr/vs/|Visual Studio 2022]], [[https://www.codeblocks.org/|Code::Blocks]], [[https://code.visualstudio.com/|Visual Studio Code]], [[https://www.monodevelop.com/|MonoDevelop]] ou [[https://www.bloodshed.net/|Dev-C++]]. Certains EDI comme [[https://visualstudio.microsoft.com/fr/vs/|Visual Studio 2022]] (assez riche et complexe) ou plus légers comme [[https://www.bloodshed.net/|Dev-C++]] ou [[https://www.codeblocks.org/|Code::Blocks]] peuvent installer en même temps le compilateur et l'environnement de programmation. Personnellement sous Windows, je vous conseillerais soit d'installer : * La community version de [[https://visualstudio.microsoft.com/fr/vs/|Visual Studio 2022]] qui vous apporte énormément de fonctionalités, mais peut s'avérer un peu trop complexes à prendre en main rapidement, * Visual Studio Code avec le support de G++ [[https://code.visualstudio.com/docs/cpp/config-mingw|Visual Studio Code avec GCC/G++ pour Windows]]. Il est possible d'avoir les deux installations en parallèle sur l'ordinateur sous Windows. ==== Sous Linux ==== Normalement gcc et/ou clang sont installés. Cependant, il existe désormais des distributions de Linux qui n'installe que certains éléments de gcc ou de clang. Ce qui signifie que vous devez terminer l'installation en installant le paquet nécessaire. Par exemple sous Ubuntu, il suffit de la commande suivante : $ sudo apt install build-essential pour installer les outils de compilation essentiels dont le compilateur C++. Ensuite la question se posera de l'environnement de développement. Vous avez aussi le choix entre [[https://www.codeblocks.org/|Code::Blocks]], [[https://code.visualstudio.com/|Visual Studio Code]], [[https://www.monodevelop.com/|MonoDevelop]] mais aussi des outils comme [[http://www.eclipse.org/cdt/|Eclipse]] (que je ne vous conseille pas, parce que bien trop riche). C'est à vous de déterminer l'outil qui vous convient le plus. A nouveau, la solution consistant à utiliser Visual Studio Code sous Linux [[https://code.visualstudio.com/docs/cpp/config-linux|Using C++ on Linux in VS Code]] est un compromis intéressant sous Linux avec une prise en main bien documenté. ==== Sous MacOs ==== Je vous conseille d'installer l'environnement de développement [[https://developer.apple.com/xcode/|XCode]] qui est la solution de développement. Une autre alternative consiste à installer [[https://code.visualstudio.com/docs/cpp/config-clang-mac|Visual Studio Code]] avec les outils Clang sur MAC. A nouveau, il s'agit d'un ensemble bien documenté et qui est bien maintenu. ======= Pourquoi installer un environnement de développement ? ======= C'est un investissement qui permet de gagner en confort d'utilisation et/ou en productivité. Cependant, cela signifie un investissement, parce qu'il faut prendre en main l'environnement de programmation. Si votre code est complètement contenu dans un ou deux fichiers, alors une commande comme : g++ main.cpp another_file.cpp -o main fonctionne très bien pour compiler. Cependant dès que le programme devient un peu plus complexe, il est agréable de pouvoir cliquer sur le message d'erreurs et de se retrouver sur la ligne de code litigieuse, de pouvoir lancer l'outil de déverminage de l'environnement d'édition, etc. ======= Et les EDI distants ? ======= Eh oui, il n'est pas obligatoire d'installer votre environnement sur la machine. Il existe désormais des sites qui vous fournissent un environnement de développement accessible en ligne. Les avantages : * vous y accédez de n'importe quel PC. * vous n'avez pas à installer l'environnement et à vous occuper des mises-à-jours. Les inconvénients : * Il vous faut une connexion internet permanente et de qualité satisfaisante. Vous trouverez un tel environnement assez complet et plus que suffisant pour le présent cours à l'adresse suivante : [[https://www.onlinegdb.com/]].