« Langage C/Outils » : différence entre les versions

Contenu supprimé Contenu ajouté
m "les les" ---> "les"
Ligne 9 :
Maintenant que les présentations sont faites, il est temps de découvrir les outils nécessaires pour programmer en C. Le strict minimum pour programmer se résume en trois points.
 
* Un '''éditeur de texte'''  : ce logiciel va servir à écrire le code source. En théorie, n’importe quel éditeur de texte suffit, mais le mieux est d’en avoir un qui colore le code source, ce qui permet une relecture plus agréable.
* Un '''compilateur'''  : c’est le logiciel le plus important puisqu’il va nous permettre de transformer le code que l’on écrit en un fichier exécutable compréhensible par le processeur.
* Un ''' ''débugger'' / débogueur''' (prononcez «  débegueur  »)  : fondamentalement, il n’est pas indispensable, mais ce logiciel est très utile pour chasser les bugs et vérifier le comportement de son programme.
 
À partir de là, il existe deux moyens de récupérer tous ces logiciels  : soit on les prend séparément, et dans ce cas il faut compiler par soi-même, soit on utilise un logiciel qui réunit les trois  : un [[w:Integrated Development Environment|IDE]] («  Environnement de Développement Intégré  » en français).
 
Face à la multitude de logiciels différents qui existent, ce chapitre a pour but de vous guider en vous montrant quelques logiciels, que ce soit pour compiler à la main ou avec un IDE.
Ligne 19 :
== Windows ==
 
Bien que de nombreux IDE soient disponibles pour Windows, nous ne parlerons que de deux d’entre eux  : Code::Blocks et Visual C++, sans oublier une partie consacrée à la compilation ''via'' l’invite de commande.
 
=== Avec un IDE ===
==== Code::Blocks ====
Code::Blocks est un IDE gratuit et libre (vous pouvez obtenir le code source du logiciel si vous le souhaitez), qui fonctionne avec plusieurs compilateurs différents et qui n’est pas très compliqué à prendre en main. Il n’est cependant disponible qu’en anglais (bien qu’il existe des traductions incomplètes en français)  ; néanmoins, avec un dictionnaire et de l’intuition, vous vous en sortirez très bien.
 
Pour télécharger Code::Blocks, rendez-vous sur [http://www.codeblocks.org/ le site officiel], dans la section «  [http://www.codeblocks.org/downloads/ Downloads]  », puis dans la sous-section «  ''Download the binary release''  ». Cette section vous permettra de télécharger le logiciel  ; contrairement à la section «  ''Download the source code<''  » qui sert à télécharger le code source de Code::Blocks.
 
Il va falloir ensuite télécharger la version du logiciel adaptée à votre système d’exploitation.
 
* '''Windows'''  : choisissez «  '''codeblocks-XX.XXmingw-setup.exe'''  » pour télécharger la version de Code::Blocks pour Windows avec un compilateur intégré. Si vous choisissez la première, vous ne pourrez pas compiler vos programmes ! Je le répète donc encore une fois  : choisissez la version avec '''mingw''' dans le nom. Pour information, [[w:Minimalist GNU for Windows|MinGW|]] est une adaptation pour Windows du compilateur [[w:GNU Compiler Collection|GCC]].
* '''Linux'''  : choisissez la version qui correspond à votre distribution. Attention à ne pas confondre les versions 32 bits et 64 bits.
* '''Mac'''  : téléchargez le fichier proposé.
 
Une image pour bien comprendre  :
 
 
Ligne 51 :
 
 
Choisissez l’icône «  ''Console application''  », entourée en gras sur l’image. Puis double-cliquez dessus ou cliquez sur le bouton «  Go  » pour créer un projet de type console.
 
Le premier menu est juste un menu informatif, cliquez sur «  Next  ». La page suivante vous demande quel langage vous voulez utiliser. Sélectionnez «  C  » puis «  Next  ». Vous arrivez ensuite sur cette fenêtre :
 
 
Ligne 61 :
Là, il y a plusieurs champs.
 
* '''Project title'''  : c’est le nom que vous souhaitez donner à votre projet. Un même nom ne peut pas être utilisé plusieurs fois, il faut un nom différent pour chaque projet.
* '''Folder to create project in'''  : c’est le répertoire dans lequel le projet sera créé.
* '''Project filename''' et '''resulting filename'''  : ces champs sont remplis automatiquement par Code::Blocks, on ne s'en préoccupe pas.
 
Ensuite, dernière fenêtre :
Ligne 75 :
* '''Create "Release" configuration''' : le programme est optimisé, portable et allégé puisqu’il ne possède plus les informations de débogage.
 
Choisir entre les deux modes importe peu pour l’instant. Il faut simplement que l’un des deux au moins soit coché. Cliquez sur «  Finish  » pour terminer la création du projet. Maintenant, vous devez avoir une fenêtre comme celle-ci  :
 
 
Ligne 95 :
Vous pouvez voir que Code::Blocks a généré un code par défaut. Nous allons le compiler. Utilisez les icônes ou les raccourcis clavier pour se faire. Il se peut que vous obteniez un message d'erreur comme celui-ci :
 
<sourcesyntaxhighlight lang="c">
"My-program  -  Release  ou  Debug"  uses  an  invalid  compiler.  Skipping...
Nothing  to  be  done.
</syntaxhighlight>
</source>
 
Si cela vous arrive, ne paniquez pas. Il y a deux causes possibles.
* '''Vous utilisez Code::Blocks et vous avez téléchargé la version sans compilateur'''  : dans ce cas, retournez sur le site officiel et prenez la version avec MinGW.
* '''Vous avez la bonne version et dans ce cas c’est le chemin vers le compilateur MinGW qui est incorrect'''  : rendez-vous dans «  Settings → Compiler&Debugger → Toolchain executable  », cliquez sur «    », et saisissez le répertoire «  MinGW  » dans votre installation (si vous avez installé Code::Blocks avec MinGW, celui-ci se trouve dans le répertoire de Code::Blocks), puis cliquez sur OK.
 
Une fois le problème réglé (si problème il y avait), le programme est compilé et un message apparait dans la console :
 
<sourcesyntaxhighlight lang="c">
Hello  world!
 
Process  returned  0  (0x0)    execution  time  :  x.xxx  s
Press  any  key  to  continue.
</syntaxhighlight>
</source>
 
La première ligne correspond à ce qu'affiche le programme. Les deux lignes suivantes sont elles spécifiques à Code::Blocks. La première indique à l'utilisateur si le programme s'est bien déroulé ou s'il y a eu erreur et le temps écoulé depuis le lancement. La seconde demande d'appuyer sur une touche pour continuer. En effet, sans cette dernière ligne, nous n'aurions pas pu voir le programme se lancer qu’il serait déjà terminé. Ce comportement est spécifique à Windows.
Ligne 130 :
 
 
Comme pour Code::Blocks, j’aimerais vous montrer la création d’un projet avant de vous expliquer l’image. Pour cela, deux possibilités  : cliquez sur «  Nouveau projet  » au démarrage, ou bien «  Fichier →Nouveau → Projet  ». Vous devriez obtenir cette fenêtre  :
 
 
Ligne 142 :
 
 
Sélectionnez «  Projet vide  » pour commencer avec un projet vierge, sinon Visual va créé un projet avec des fichiers dont nous ne voulons pas.
 
Pour rajouter des fichiers, la manœuvre est très simple  : faites un clic droit sur l’onglet «  Fichiers sources  » dans la colonne de gauche, puis allez dans «  Ajouter → Nouvel élément…  ». Une petite image pour bien comprendre  :
 
 
Ligne 150 :
 
 
Une nouvelle fenêtre apparait alors pour vous demander quel type de fichier il faut ajouter au projet. Cliquez sur « Fichiers C++ (.cpp) » (même si ce type de fichier est normalement réservé au C++), et appelez votre fichier '''main.c'''. Il faut que le fichier se termine par '''.c''', sinon Visual ajoutera automatiquement l’extension '''.cpp''' qui est celle des fichiers C++. Donc faites-y attention  ! Le fichier est maintenant ajouté, comme vous pouvez le voir.
 
Et si nous examinions un peu les menus de Visual C++  ? Vous devriez normalement avoir une fenêtre comme celle-ci  :
 
 
Ligne 167 :
Voici quelques raccourcis claviers pratiques que vous serez souvent amenés à utiliser :
 
* '''F5''' : lance l’exécutable en appelant le débogueur  ;
* '''Ctrl + F5'''  : lance l’exécutable sans appeler le débugger  ;
* '''F7'''  : génère une solution (compile) sans lancer le programme  ;
* '''Ctrl + Alt + F7'''  : régénère une solution.
 
Comme une liste de tous les raccourcis serait trop longue, voici [http://download.microsoft.com/download/2/9/6/296AAFA4-669A-46FE-9509-93753F7B0F46/VS-KB-Brochure-CPP-A4.pdf la liste officielle] (en anglais).
Ligne 176 :
Essayons de mettre en pratiques quelques uns de ces raccourcis en compilant un code minimal. Je vous fournis un code source que nous examinerons dans le chapitre suivant.
 
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
 
Ligne 184 :
return 0;
}
</syntaxhighlight>
</source>
 
Pour le compiler, on doit faire '''F7''' puis '''Ctrl + F5'''. Cependant, pour allez plus vite, on peut faire directement '''Ctrl + F5'''. Si vous utilisez cette combinaison de touches, il se peut que vous tombiez sur une fenêtre semblable à celle-ci :
Ligne 219 :
L’éditeur de texte va nous permettre d’écrire notre code source et de l’enregistrer pour que le compilateur fasse son travail. L’idéal est d’avoir un éditeur de texte facile à utiliser et qui colore le code source, ce qui permet une meilleure relecture. Si jamais vous avez déjà un éditeur de texte et que vous l'appréciez, ne changez pas, il marchera très bien lui aussi.
 
Si cependant vous ne savez pas lequel prendre, je vais vous aider. Personnellement, j’utilise [http://notepad-plus-plus.org/fr/ Notepad++], qui est simple, pratique et efficace. Pour le télécharger, rendez-vous sur la [http://notepad-plus-plus.org/fr/download/v5.9.6.2.html page de téléchargement], et sélectionnez «  ''Notepad++ vX.X.X.X Installer''  » pour télécharger l’installateur. Pour l'installation je vous laisse faire, elle est facile.
 
==== Compiler à la main avec l’invite de commande ====
Ligne 225 :
Testons tout ce que l’on vient d’installer en compilant un petit code simple que nous expliquerons dans le chapitre suivant.
 
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
 
Ligne 233 :
return 0;
}
</syntaxhighlight>
</source>
 
Copiez-collez ce code dans l’éditeur de texte, puis enregistrez le fichier sous le nom '''main.c'''. Ensuite, déplacez-vous dans les répertoires à l’aide de l’invite pour arriver dans le répertoire qui contient le fichier source.
 
<sourcesyntaxhighlight lang="text">
C:\Programmation>dir
 
Répertoire  de  C:\Programmation
 
07/12/2011   13:54     <REP>           .
07/12/2011   13:54     <REP>           ..
07/12/2011   13:54              130    main.c
 
1  fichier(s)               130  octets
2  Rép(s)   172  089  290  752  octets  libres
</syntaxhighlight>
</source>
 
Nous allons compiler ce fichier à l’aide d’une commande : '''gcc  main.c'''. Cette commande va transformer le fichier spécifié en exécutable. Si vous regardez le répertoire de nouveau, vous remarquerez d’ailleurs qu'un fichier '''.exe''' est apparu. C’est le résultat de la compilation. Si vous le lancez, vous verrez le résultat à l'écran  :
 
<sourcesyntaxhighlight lang="text">
C:\Programmation>gcc  main.c
 
C:\Programmation>main.exe
Hello  world
</syntaxhighlight>
</source>
 
Si vous obtenez une erreur du type «  '' 'gcc'  n'est  pas  reconnu  en  tant  que  commande  interne  ou  externe,  un  programme  exécutable  ou  un  fichiers  de  commandes''  » c’est que vous vous êtes trompés quelque part.
 
Nous apprendrons dans le chapitre suivant pourquoi le programme affiche un message à l’écran.
Ligne 267 :
== GNU/Linux - UNIX ==
 
Le C étant très lié à UNIX, il existe de nombreux outils disponibles pour ces deux systèmes d’exploitation. Je vais vous en présenter quelques-uns. Afin d’éviter certains problèmes, je vous conseille fortement d’installer le paquet ''build-essential'' avant toute chose sous  Debian  et  ses  dérivés (Ubuntu, Kubuntu, etc. en font partie)  :
 
<sourcesyntaxhighlight lang="text">
#  aptitude  install  build-essential
</syntaxhighlight>
</source>
 
=== Les IDE ===
Ligne 297 :
Il existe des éditeurs de textes graphiques et des éditeurs de textes en console. Voici quelques-uns des plus célèbres et des plus utiles pour un programmeur (liste non-exhaustive) :
 
* [http://www.vim.org/ Vim], tutoriel en français  : commande '''vimtutor'''  ;
* [http://www.gnu.org/s/emacs/ Emacs], tutoriel en français  disponible [http://www.tuteurs.ens.fr/unix/editeurs/emacs.html ici] ;
* [http://www.jedit.org/ jEdit], tutoriel en français  disponible [http://tousleschats.free.fr/hermes/tuto/index.html ici]  ;
* [http://kate-editor.org/ Kate], tutoriel en français  disponible [http://www.linuxpedia.fr/doku.php/kate ici].
 
jEdit est un très bon éditeur de texte graphique spécialement adapté à la programmation. Vim et Emacs sont des éditeurs de texte extrêmement puissants en pratique, mais assez compliqués, surtout pour un débutant ; ne les laissez pas de côté pour autant, ils ne peuvent que vous être utiles.
 
Maintenant, créez un fichier '''test.c''' (que vous pouvez mettre dans un dossier nommé «  prog  » dans votre dossier ''home'' par exemple) contenant le code suivant  :
 
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
 
Ligne 314 :
return 0;
}
</syntaxhighlight>
</source>
 
Afin de créer l’exécutable à partir du code source précédent, on fait comme ceci :
 
<sourcesyntaxhighlight lang="text">
gcc  test.c
</syntaxhighlight>
</source>
 
Ou bien encore  :
 
<sourcesyntaxhighlight lang="text">
gcc  *.c  #  Le  joker  *  permet  de  raccourcir  la  commande.
</syntaxhighlight>
</source>
 
Un exécutable s'est créee : '''a.out''', que l’on lance ainsi :
 
<sourcesyntaxhighlight lang="text">
./a.out
</syntaxhighlight>
</source>
 
Pour modifier le nom de l'exécutable, on utilise l’option '''-o''' comme ceci  :
 
<sourcesyntaxhighlight lang="text">
gcc  test.c  -o  mon_executable
</syntaxhighlight>
</source>
 
Comme on peut s'en douter, il existe énormément d’options de compilation différentes, si bien qu'on ne peux pas toutes les lister ici. Cependant, [http://www.siteduzero.com/tutoriel-3-31992-compilez-sous-gnu-linux.html ce tutoriel] ainsi que vers [http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man1/gcc.1.html la documentation officielle] sont là pour ça. Bien que ces pages contiennent des éléments avancés du C, elles peuvent servir à n’importe quel moment, d'où l’intérêt de les garder.
Ligne 351 :
Premièrement, il va falloir télécharger Xcode. Si vous êtes sous Mac OS X Lion, vous n’avez qu’à aller sur le ''Mac AppStore'' (menu « ''Pomme > App Store ...'' ») et télécharger Xcode. Si vous êtes sous une version antérieure, il faudra vous rendre sur le site de développeur d’Apple : [https://developer.apple.com/ Apple Developer Connection]. Il faudra ensuite vous rendre sur le ''Mac Dev Center'' puis dans « ''Additional download'' », vous cliquerez sur « ''View all downloads'' ». Quand vous aurez la liste, il suffit de chercher la version 3 de Xcode (pour Leopard et Snow Leopard) ou 2 pour les versions encore antérieures (Tiger). Vous pouvez aussi utiliser votre CD d’installation pour installer Xcode (sauf pour Lion). Seule la version 4 de Xcode sera présentée ici.
 
Une fois le téléchargement terminé, vous aurez un fichier nommé «  ''Install Xcode.app''  », lancez l’application et cliquez sur «  ''Install''  » puis acceptez les conditions d’utilisation. Votre mot de passe administrateur va vous être demandé. L’installation dure un certain temps, allez prendre un café en attendant.
 
 
Ligne 357 :
 
 
Maintenant que Xcode est installé, vous pouvez supprimer le fichier «  ''Install Xcode.app''  », ça vous libèrera quelques Go d’espace disque. Lancez Xcode maintenant. S’il n’est pas présent dans le dock ou si vous l’en avez supprimé par erreur, vous pourrez toujours retrouver l’application dans le menu ''/Developer/Applications''.
 
 
Ligne 363 :
 
 
Je pense que c’est assez explicite, pas besoin de trop m’attarder là-dessus. Cliquez sur «  ''Create a new Xcode project''  », puis sélectionnez «  ''Command Line Tool''  » dans la partie «  ''Application''  » de «  ''Mac OS X''  » sur la partie gauche puis cliquez sur «  ''Next''  ».
 
 
Ligne 369 :
 
 
Dans le champ «  ''Product Name''  », entrez simplement le nom de votre projet. Dans le champ «  ''Company Identifier''  », vous pouvez mettre votre pseudo par exemple (à moins que vous apparteniez à une entreprise, dans ce cas-là, il faudrait mettre le nom de votre entreprise). Choisissez bien «  ''C''  » dans le champ «  ''Type''  », puis cliquez sur «  ''Next''  ».
 
 
Ligne 375 :
 
 
Dans la fenêtre suivante, vous devrez sélectionner le chemin vers lequel vous allez mettre votre projet. Xcode crée un dossier pour votre projet du nom que vous avez entré. Votre projet s’ouvre automatiquement. Vous devriez avoir une fenêtre qui ressemble à ça  :
 
 
Ligne 397 :
Tentons maintenant de compiler notre premier code que voici :
 
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
 
Ligne 405 :
return 0;
}
</syntaxhighlight>
</source>
 
Essayez de compiler ce code. Vous devriez voir s'afficher à l'écran quelque chose comme ceci :
 
<sourcesyntaxhighlight lang="text">
GNU  gdb  6.3.50-20050815  (Apple  version  gdb-1708)  (Mon  Aug  15  16:03:10  UTC  2011)
Copyright  2004  Free  Software  Foundation,  Inc.
GDB  is  free  software,  covered  by  the  GNU  General  Public  License,  and  you  are
welcome  to  change  it  and/or  distribute  copies  of  it  under  certain  conditions.
Type  "show  copying"  to  see  the  conditions.
There  is  absolutely  no  warranty  for  GDB.   Type  "show  warranty"  for  details.
This  GDB  was  configured  as  "x86_64-apple-darwin".  tty  /dev/ttys000
sharedlibrary  apply-load-rules  all  [Switching  to  process  679  thread  0x0]
 
Hello  world!  Program  ended  with  exit  code:  0
</syntaxhighlight>
</source>
 
Toutes ces lignes ont été ajoutées par le compilateur automatiquement et ne nous intéressent pas vraiment. La dernière ligne affiche cependant le message '''Hello  world!''' ainsi que le résultat de l'exécution.
 
=== En ligne de commande ===