Compiler un programme C++
Par Contributeur - Publié le
Le programme
Avant de penser à la compilation il faut bien sûr programmer les fichiers sources. Ici nous prendrons un exemple très simple ne comportant qu'un seul fichier lui même très basique puisque le programme se contente d'afficher "Hello world !". Son code source est le suivant
#include <iostream>
using namespace std;
int main(int argc, char *[ argv)
{
cout << "Hello world !" << endl;
return 0;
}
Comme vous le voyez c'est extrêmement simple, je ne m'étendrais pas là dessus. Passons plutôt à la compilation.
La compilation
Avec ProjectBuilder
Compiler un programme avec ProjectBuilder est très simple, il suffit de cliquer sur le bouton
Build...
En réalité ProjectBuilder utilise pour compiler votre programme un modèle choisi selon le type de
targetque vous avez choisi. Dans notre cas il fallait évidemment choisir
C++ Tool. Si vous êtes observateur vous aurez remarqué que PB affiche dans un volet les commandes qu'il exécute. Cela montre bien qu'il ne fait que lancer une suite de commandes au shell, manoeuvre que nous pouvons également accomplir à la main.
Vous pouvez aussi modifier les options de gcc dans les réglages de la
targetpour plus de souplesse.
Il n'est donc pas nécessaire de connaitre l'usage de gcc pour compiler un programme avec PB mais c'est tout de même grandement conseillé, cela sert toujours à un moment ou un autre.
En réalité PB n'utilise pas directement gcc: il passe par jam, un système équivalent au Makefile dont je vous parlerai un peu plus loin.
En ligne de commande
Vous pouvez donc appeler gcc directement depuis la ligne de commande. En plus de compiler, gcc fait aussi office de
linkerpar le biais de ld. Il suffit donc d'une ligne de commande pour obtenir un executable.
Pour compiler notre exemple, la ligne la plus simple est:
c++ helloworld.cpp
Vous remarquerez que nous utilisons c++, un lien symbolique verc g++3, le compilateur c++.
Une pléthore d'options est disponible, je vous laisse consulter la page de manuel pour une liste exhaustive.
Voilà toutefois une utilisation courante:
c++ -Wall -o helloworld helloworld.cpp
Nous demandons là au compilateur d'afficher un maximum de
warningset de nommer sa sortie (c'est -à-dire l'executable) helloworld. Par défaut gcc appelle a.out sa sortie.
Nous n'avons ici qu'un seul fichier source mais vous pouvez en compiler autant que vous voulez en une seule ligne, il suffit de les ajouter à la fin de la ligne de commande:
c++ -Wall -o myprog source1.c source2.c ...
Afin d'éviter d'avoir à taper tout cela pour les gros projets (surtout qu'il y a souvent plus d'options que cela) à chaque compilation, on utilise un système particulier: GNU Make.
La commande make associée à un fichier Makefile dans le dossier du projet permet de compiler un programme complet en ne tapant que quatre lettres ! A travers l'écriture de Makefiles, make dispose d'énormes possibilités. Sur ce point je vous recommande la documentation fournie avec les Developer Tools.
Ici il serait ridicule de créer un Makefile; si vous cherchez des exemples, regardez les sources de n'importe quel programme en ligne de commande, quasiment tous utilisent ce système.
Conclusion
Ca y est, vous savez tout sur les différents moyens de compiler du code c++. En fait c'est exactement comme du code C sauf que vous appelez c++ (ou g++ ou g++3) au lieu de cc. Maintenant il ne vous reste plus qu'à écrire du code à compiler: à vos claviers !