Compilation et code--blocks » History » Version 1
  iri, 01/29/2013 09:34 PM 
  
| 1 | 1 | iri | h1. Compilation et code::blocks | 
|---|---|---|---|
| 2 | |||
| 3 | Objectif : bases de la compilation pratique et utilisation de Code::Blocks | ||
| 4 | |||
| 5 | STATUT : COMPLET | ||
| 6 | Version : 1.0 | ||
| 7 | Auteur : iri | ||
| 8 | Date : Novembre 2010 (initialement diffusé sur http://www.irizone.net) | ||
| 9 | Licence du tutoriel : GNU FDL v1.3 | ||
| 10 | Licence du code source : GNU/GPL v3 | ||
| 11 | Ok pour toute version de Scol Windows et GNU/Linux. | ||
| 12 | |||
| 13 | |||
| 14 | h2. Code::Blocks | ||
| 15 | |||
| 16 | h3. Installation | ||
| 17 | |||
| 18 | Code::Blocks (C::B en abrégé) est un IDE (Environnement de Développement Intégré, | ||
| 19 | en Français), orienté C et C++ (mais compatible avec d'autres langages éventuellement). | ||
| 20 | Son développement est très actif et il est possible, si on le souhaite, utiliser | ||
| 21 | les "Nightly Build", les mises à jours régulières et quotidiennes. Dans notre cas, | ||
| 22 | ce n'est pas nécessaire. | ||
| 23 | |||
| 24 | Si vous êtes sous MS Windows, rendez-vous sur le site officiel de C::B (il est | ||
| 25 | toujours préférable de passer par les sites officiels que par des plateformes de | ||
| 26 | téléchargement qui n'ont pas forcément la dernière version ou qui ne proposent pas | ||
| 27 | toutes les options) : http://www.codeblocks.org/ | ||
| 28 | La rubrique "Downloads" vous tend les bras. À moins de savoir ce que vous faîtes, | ||
| 29 | préférez la version incluant MingW, vous n'aurez pas à configurer les différents | ||
| 30 | paths du compilateur. | ||
| 31 | |||
| 32 | Si vous êtes sous GNU/Linux, installez C::B depuis les dépôts de votre distribution | ||
| 33 | ou compilez-le avec le code source disponible à la rubrique "Downloads" de | ||
| 34 | http://www.codeblocks.org/ | ||
| 35 | |||
| 36 | h3. Utilisation | ||
| 37 | |||
| 38 | Ouvrez C::B. Vous devriez obtenir une interface similaire (les captures ci-dessus | ||
| 39 | ont été faite sur un système Ubuntu, les variations sont minimes sous MS Windows, | ||
| 40 | cliquez sur les images pour les agrandir) : | ||
| 41 | |||
| 42 | http://www.irizone.net/img/prog_cb_0.png (image 1) | ||
| 43 | |||
| 44 | Commencez un nouveau projet (Create a new project ou menu File > New > Project). | ||
| 45 | Un assistant s'affiche, cliquez sur Suivant. | ||
| 46 | Choisissez "Project" dans la liste de gauche puis "Shared library" puisque nous allons | ||
| 47 | ajouter une bibliothèque à Scol : | ||
| 48 | |||
| 49 | http://www.irizone.net/img/prog_cb_1.png (image 2) | ||
| 50 | |||
| 51 | Cliquez sur le bouton "Go". Choisissez le langage (C ou C++). Ici, dans ces tutoriaux, | ||
| 52 | j'utiliserai exclusivement du C. Il est inutile de mettre automatiquement C++ si vous | ||
| 53 | ne codez qu'en C, les retours du compilateur n'en seront que plus pertinents. Quant | ||
| 54 | à la POO, il est possible d'en faire en C, il n'y a qu'à voir GTK+ qui est exclusivement | ||
| 55 | en C. Le sujet étant hautement trollesque et inapproprié ici, faîtes comme bon vous | ||
| 56 | semble ! Sachez simplement que vous pourrez toujours modifiez le compilateur plus tard. | ||
| 57 | Vous obtenez l'étape suivante pour configurer les paths de votre projet. Vérifiez | ||
| 58 | bien le dernier champ, C::B a une facheuse tendance à ajouter un degré supplémentaire dans l'arborescence. | ||
| 59 | |||
| 60 | http://www.irizone.net/img/prog_cb_2.png (image 3) | ||
| 61 | |||
| 62 | Choisissez le compilateur. Vous avez le choix entre plusieurs compilateurs. Remarquez | ||
| 63 | que C::B vous les propose même s'ils ne sont pas présents. Le cas échéant, installez-les | ||
| 64 | et configurez-les dans C::B via le menu "Settings". Choississez GNU GCC Compiler et | ||
| 65 | cochez les cases Release et/ou Debug, au choix. | ||
| 66 | Par défaut, l'option Release placera l'option -s à gcc alors que l'option Debug placera | ||
| 67 | l'option -g (et supprimera l'option -s). | ||
| 68 | |||
| 69 | http://www.irizone.net/img/prog_cb_3.png (image 4) | ||
| 70 | |||
| 71 | Cliquez sur le bouton Finish. Par défaut, C::B vous crée un fichier "main.c" | ||
| 72 | avec un contenu bidon. Vous pouvez modifier / créer vos propres templates. | ||
| 73 | L'arborescence de votre projet est présente dans l'arbre situé sur la gauche de l'interface. | ||
| 74 | Un double-clic édite le fichier, un clic droit propose diverses options. | ||
| 75 | |||
| 76 | Mieux vaut configurez immédiatement le compilateur, comme ça, c'est fait ! Allez | ||
| 77 | au menu "Project" > "Build options" : | ||
| 78 | |||
| 79 | http://www.irizone.net/img/prog_cb_4.png (image 5) | ||
| 80 | |||
| 81 | Dans l'arbre de gauche, vous retrouvez les options (Debug et Release si vous les | ||
| 82 | avez sélectionnées lors de la création du projet). | ||
| 83 | Pour chacune d'elles je préconise les options suivantes : | ||
| 84 | |||
| 85 | * "-Wall" (enable all compilers warnings) : si les warnings ne bloquent pas la compilation, | ||
| 86 | les conséquences sont souvent plus fâcheuses lors de l'exécution. Sauf cas particuliers, | ||
| 87 | corrigez-les même s'ils vous paraissent secondaires : c'est TOUJOURS une source de | ||
| 88 | bogues potentiels ou de mauvaise portabilité. De plus, même si leurs présences se révèlent | ||
| 89 | inoffensive à l'exécution, ils traduisent le plus souvent une mauvaise conception du code. | ||
| 90 | * "-pedantic" (enable warnings demanded by strict ISO C and ISO C++) : option impérative | ||
| 91 | pour écrire un code normalisée : l'intérêt est qu'il sera le plus facilement portable | ||
| 92 | sur d'autres plateformes ou le plus facilement compilable par un autre compilateur. | ||
| 93 | De plus, un code normalisée est moins sujet à des bogues (puisque non seulement la | ||
| 94 | norme est éprouvée mais aussi pleinement compatible avec les standards). Enfin, un code | ||
| 95 | normalisé sera mieux lisible. | ||
| 96 | * "-O2" (optimize even more) : c'est l'option par défaut de C::B, qui peut être un bon | ||
| 97 | compromis. | ||
| 98 | * "-ansi" : cette option est relativement parallèle avec -pedantic (elles sont souvent | ||
| 99 | utilisées conjointement dans la chaîne des options passées à gcc). Cependant, si vous | ||
| 100 | souhaitez utiliser certaines fonctions, notamment de la glibc, spécifiques à GNU, mieux | ||
| 101 | vaudrait la décocher. Sinon, cochez-la, elle ne rendra votre code que meilleur ! | ||
| 102 | |||
| 103 | Bien entendu, ces options risquent de vous afficher un grand nombre de warnings | ||
| 104 | si vous n'avez pas l'habitude de respecter un minimum la norme. Prenez le temps de | ||
| 105 | les corriger, ce ne sera que bénéfique à plus long terme :) | ||
| 106 | |||
| 107 | Avec l'option "Debug", l'option "-g" (produce debugging symbols) sera cochée. L'option | ||
| 108 | "-s" (remove all symbols from binary) sera, elle, enlevée. Ce qui est logique ... ! | ||
| 109 | |||
| 110 | Avec l'option "Release", c'est l'inverse (option "-g" absente, option "-s" présente). | ||
| 111 | Cette dernière est néanmoins facultative. | ||
| 112 | |||
| 113 | Notez que l'option "-Wextra" peut être trop restrictive et renvoyer nombre de | ||
| 114 | warnings que vous ne pourrez pas corriger (renvoyant le plus souvent à des bibliothèques | ||
| 115 | tierces). | ||
| 116 | |||
| 117 | Enfin, si votre code a besoin de bibliothèques particulières, ajoutez-les au linker | ||
| 118 | (onglet "Linker settings") et/ou configurez le compilateur (onglet "Compiler settings" > "Other options"). | ||
| 119 | |||
| 120 | Configurez plus finement votre projet en allant au menu "Project" > "Properties" : | ||
| 121 | |||
| 122 | http://www.irizone.net/img/prog_cb_5.png (image 6) | ||
| 123 | |||
| 124 | Vous êtes désormais prêt à coder ;-) | ||
| 125 | |||
| 126 | |||
| 127 | PS : si nécessaire, un bon tutoriel est présent sur le site du zéro : http://www.siteduzero.com/tutoriel-3-2763-installez-et-maitrisez-a-fond-code-blocks.html. | ||
| 128 | Pour le debugging, une première entrée peut se faire ici : http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks. | ||
| 129 | Enfin et surtout, un manuel complet en français et réalisé par l'équipe de développement de C::B est librement disponible : manuel. |