Top Promos Apple Test Apple Antivirus Mac Dock Thunderbolt Sunology Comparatif iPhone Nettoyeur Mac

Articles

Divers

Compiler un programme C++

Par Coco - Mis à jour 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 !

Pour Apple, le Vision Pro est un succès ! (Mais peut-elle dire le contraire ?)

Pour Apple, le Vision Pro est un succès ! (Mais peut-elle dire le contraire ?)

Lors de la conférence téléphonique des résultats financiers d'Apple, Tim Cook a déclaré que la moitié des...

Tim Cook confirme des annonces IA la semaine prochaine #AppleEvent

Tim Cook confirme des annonces IA la semaine prochaine #AppleEvent

Profitant des résultats trimestriels, Tim Cook a donné une petite interview et a confirmé qu'il fera quelques annonces en matière...

Des résultats trimestriels mitigés pour Apple : 90,753 milliards de CA, l'iPhone en chute de 10%

Des résultats trimestriels mitigés pour Apple : 90,753 milliards de CA, l'iPhone en chute de 10%

A l'approche de son prochain évènement spécial, Apple dévoile ce soir les résultats financiers pour le deuxième...

Microsoft et OpenAI (ChatGPT), un investissement motivé par la peur

Microsoft et OpenAI (ChatGPT), un investissement motivé par la peur

Après quelques révélations sur les discussions entre Google et Apple, les documents liés au dossier antitrust du ministère...

La 6G atteint des débits impressionnants : 20 fois plus rapide que la 5G !

La 6G atteint des débits impressionnants : 20 fois plus rapide que la 5G !

Alors que la 5G prend tout doucement son envol, la 5G millimétrique devant seulement être pleinement opérationnelle en France en 2025, les...

Razer reçoit une amende de 1,1 million de dollars pour publicité mensongère !

Razer reçoit une amende de 1,1 million de dollars pour publicité mensongère !

Le constructeur américain spécialisé dans le gaming s'était aventuré sur le terrain des masques high-tech lors de la...

La conteuse française Ma Fabrique à Histoires de Lunii au meilleur prix pour les French Days !

La conteuse française Ma Fabrique à Histoires de Lunii au meilleur prix pour les French Days !

Les French Days débutent aujourd'hui et permettent de s'offrir la dernière version de la conteuse Ma Fabrique à Histoires de la firme...

Le routeur Netgear Nighthawk RS700S à son prix le plus bas ! 4Gb/s en Wi-Fi 7 !

Le routeur Netgear Nighthawk RS700S à son prix le plus bas ! 4Gb/s en Wi-Fi 7 !

SI vous désirez goûter aux joies du Wi-Fi 7 et disposer d'un réseau sans fil performant, le routeur Nighthawk RS700S de Netgear est...

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.