Project

General

Profile

Actions

Compilation et code::blocks

Objectif : bases de la compilation pratique et utilisation de Code::Blocks

STATUT : COMPLET
Version : 1.0
Auteur : iri
Date : Novembre 2010 (initialement diffusé sur http://www.irizone.net)
Licence du tutoriel : GNU FDL v1.3
Licence du code source : GNU/GPL v3
Ok pour toute version de Scol Windows et GNU/Linux.

Code::Blocks

Installation

Code::Blocks (C::B en abrégé) est un IDE (Environnement de Développement Intégré,
en Français), orienté C et C++ (mais compatible avec d'autres langages éventuellement).
Son développement est très actif et il est possible, si on le souhaite, utiliser
les "Nightly Build", les mises à jours régulières et quotidiennes. Dans notre cas,
ce n'est pas nécessaire.

Si vous êtes sous MS Windows, rendez-vous sur le site officiel de C::B (il est
toujours préférable de passer par les sites officiels que par des plateformes de
téléchargement qui n'ont pas forcément la dernière version ou qui ne proposent pas
toutes les options) : http://www.codeblocks.org/
La rubrique "Downloads" vous tend les bras. À moins de savoir ce que vous faîtes,
préférez la version incluant MingW, vous n'aurez pas à configurer les différents
paths du compilateur.

Si vous êtes sous GNU/Linux, installez C::B depuis les dépôts de votre distribution
ou compilez-le avec le code source disponible à la rubrique "Downloads" de
http://www.codeblocks.org/

Utilisation

Ouvrez C::B. Vous devriez obtenir une interface similaire (les captures ci-dessus
ont été faite sur un système Ubuntu, les variations sont minimes sous MS Windows,
cliquez sur les images pour les agrandir) :

http://www.irizone.net/img/prog_cb_0.png (image 1)

Commencez un nouveau projet (Create a new project ou menu File > New > Project).
Un assistant s'affiche, cliquez sur Suivant.
Choisissez "Project" dans la liste de gauche puis "Shared library" puisque nous allons
ajouter une bibliothèque à Scol :

http://www.irizone.net/img/prog_cb_1.png (image 2)

Cliquez sur le bouton "Go". Choisissez le langage (C ou C++). Ici, dans ces tutoriaux,
j'utiliserai exclusivement du C. Il est inutile de mettre automatiquement C++ si vous
ne codez qu'en C, les retours du compilateur n'en seront que plus pertinents. Quant
à la POO, il est possible d'en faire en C, il n'y a qu'à voir GTK+ qui est exclusivement
en C. Le sujet étant hautement trollesque et inapproprié ici, faîtes comme bon vous
semble ! Sachez simplement que vous pourrez toujours modifiez le compilateur plus tard.
Vous obtenez l'étape suivante pour configurer les paths de votre projet. Vérifiez
bien le dernier champ, C::B a une facheuse tendance à ajouter un degré supplémentaire dans l'arborescence.

http://www.irizone.net/img/prog_cb_2.png (image 3)

Choisissez le compilateur. Vous avez le choix entre plusieurs compilateurs. Remarquez
que C::B vous les propose même s'ils ne sont pas présents. Le cas échéant, installez-les
et configurez-les dans C::B via le menu "Settings". Choississez GNU GCC Compiler et
cochez les cases Release et/ou Debug, au choix.
Par défaut, l'option Release placera l'option -s à gcc alors que l'option Debug placera
l'option -g (et supprimera l'option -s).

http://www.irizone.net/img/prog_cb_3.png (image 4)

Cliquez sur le bouton Finish. Par défaut, C::B vous crée un fichier "main.c"
avec un contenu bidon. Vous pouvez modifier / créer vos propres templates.
L'arborescence de votre projet est présente dans l'arbre situé sur la gauche de l'interface.
Un double-clic édite le fichier, un clic droit propose diverses options.

Mieux vaut configurez immédiatement le compilateur, comme ça, c'est fait ! Allez
au menu "Project" > "Build options" :

http://www.irizone.net/img/prog_cb_4.png (image 5)

Dans l'arbre de gauche, vous retrouvez les options (Debug et Release si vous les
avez sélectionnées lors de la création du projet).
Pour chacune d'elles je préconise les options suivantes :

  • "-Wall" (enable all compilers warnings) : si les warnings ne bloquent pas la compilation,
    les conséquences sont souvent plus fâcheuses lors de l'exécution. Sauf cas particuliers,
    corrigez-les même s'ils vous paraissent secondaires : c'est TOUJOURS une source de
    bogues potentiels ou de mauvaise portabilité. De plus, même si leurs présences se révèlent
    inoffensive à l'exécution, ils traduisent le plus souvent une mauvaise conception du code.
  • "-pedantic" (enable warnings demanded by strict ISO C and ISO C++) : option impérative
    pour écrire un code normalisée : l'intérêt est qu'il sera le plus facilement portable
    sur d'autres plateformes ou le plus facilement compilable par un autre compilateur.
    De plus, un code normalisée est moins sujet à des bogues (puisque non seulement la
    norme est éprouvée mais aussi pleinement compatible avec les standards). Enfin, un code
    normalisé sera mieux lisible.
  • "-O2" (optimize even more) : c'est l'option par défaut de C::B, qui peut être un bon
    compromis.
  • "-ansi" : cette option est relativement parallèle avec -pedantic (elles sont souvent
    utilisées conjointement dans la chaîne des options passées à gcc). Cependant, si vous
    souhaitez utiliser certaines fonctions, notamment de la glibc, spécifiques à GNU, mieux
    vaudrait la décocher. Sinon, cochez-la, elle ne rendra votre code que meilleur !

Bien entendu, ces options risquent de vous afficher un grand nombre de warnings
si vous n'avez pas l'habitude de respecter un minimum la norme. Prenez le temps de
les corriger, ce ne sera que bénéfique à plus long terme :)

Avec l'option "Debug", l'option "-g" (produce debugging symbols) sera cochée. L'option
"-s" (remove all symbols from binary) sera, elle, enlevée. Ce qui est logique ... !

Avec l'option "Release", c'est l'inverse (option "-g" absente, option "-s" présente).
Cette dernière est néanmoins facultative.

Notez que l'option "-Wextra" peut être trop restrictive et renvoyer nombre de
warnings que vous ne pourrez pas corriger (renvoyant le plus souvent à des bibliothèques
tierces).

Enfin, si votre code a besoin de bibliothèques particulières, ajoutez-les au linker
(onglet "Linker settings") et/ou configurez le compilateur (onglet "Compiler settings" > "Other options").

Configurez plus finement votre projet en allant au menu "Project" > "Properties" :

http://www.irizone.net/img/prog_cb_5.png (image 6)

Vous êtes désormais prêt à coder ;-)

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.
Pour le debugging, une première entrée peut se faire ici : http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks.
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.

Updated by iri about 11 years ago · 1 revisions