Articles

Divers

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 target que 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 target pour 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 linker par 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 warnings et 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 !
Mac4Ever recrute sur Paris et Nîmes

Mac4Ever recrute sur Paris et Nîmes

Mac4ever renforce ses équipes et recherche plusieurs personnes pour participer à la rédaction de son fil d'actualité, à la création de contenu vidéo, ainsi qu'à l'amélioration du référencement des contenus. Si tu es intéressé, n'hésite pas à postuler !

Ce qu'il ne faut toujours pas attendre de la keynote d'Apple du 9 septembre

Ce qu'il ne faut toujours pas attendre de la keynote d'Apple du 9 septembre

Dans trois dodos, Apple tiendra son grand évènement de l'année, à savoir la keynote de l'iPhone -Lumière vers le...

Telegram : Pavel Durov sort de son silence, après sa mise en examen

Telegram : Pavel Durov sort de son silence, après sa mise en examen

Après avoir été au centre de toutes les attentions médiatiques, Pavel est resté plutôt silencieux. Mais hier, il a...

Orange et Sosh prolongent l’offre 5G gratuite

Orange et Sosh prolongent l’offre 5G gratuite

C’est assez rare pour être relevé, les abonnés d’Orange et de Sosh ont doit à un petit cadeau de rentrée !...

Donald Trump veut confier l’audit des USA à Elon Musk

Donald Trump veut confier l’audit des USA à Elon Musk

Si certains avaient encore des doutes, Donald Trump et Elon Musc filent le parfait amour politique. Devant un petit club de personnalités choisies -des...

Bureaux assis-debout de FEZIBO : les moins chers et les plus robustes du marché !

Bureaux assis-debout de FEZIBO : les moins chers et les plus robustes du marché !

Après avoir testé plusieurs modèles, on s'intéresse aujourd'hui FEZIBO, qui propose également des bureaux assis-debout au...

DJI Neo, un mini drone qui tient dans la main

DJI Neo, un mini drone qui tient dans la main

DJI -leader mondial dans le domaine des drones civils- profite également de l'IFA 2024 pour dévoiler aujourd’hui le DJI Neo, le drone le...

Michel Barnier, quelles sont ses positions sur le numérique ?

Michel Barnier, quelles sont ses positions sur le numérique ?

Michel Barnier vient d’être nommé Premier ministre par Emmanuel Macron. Il est une figure incontournable de la politique française et...

Les smartphones causent-ils le cancer du cerveau ? L’OMS persiste et signe

Les smartphones causent-ils le cancer du cerveau ? L’OMS persiste et signe

Une étude commandée par l’Organisation mondiale de la santé (OMS) vient de dissiper les craintes persistantes concernant les risques...

Commentaires

Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.

15 commentaires
Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.