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. |