« Programmation C++/Compilation » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 1 :
{{Programmation C++}}
== Définition de la compilation ==
== Compilation ==
 
La compilation consiste en une série d'étapes de transformation du code source en du code machine exécutable sur un processeur cible.
Ligne 6 :
Le langage C++ fait partie des langages compilés : le fichier exécutable est produit à partir de '''fichiers sources''' par '''un compilateur'''.
 
Contrairement aux languageslangages interprétés où il faut un logiciel interprétant le source, le fichier exécutable est produit pour une machine donnée : il est directement exécuté par le processeur.
L'exécution est donc plus rapide.
 
Ligne 13 :
* préprocessing : Le code source original est transformé en code source brut. Les commentaires sont enlevés et les directives de compilation commençant par <code>#</code> sont d'abord traités pour obtenir le code source brut ;
* compilation en fichier objet : les fichiers de code source brut sont transformés en un fichier dit objet, c'est-à-dire un fichier contenant du code machine ainsi que toutes les informations nécessaires pour l'étape suivante (édition des liens). Généralement, ces fichiers portent l'extension <code>.obj</code> ou <tt>.o</tt> ;
* édition de liens : dans cette phase, l'éditeur de liens (linker) s'occupe d'assembler les fichiers objet en une entité exécutable et doit pour ce faire résoudre toutes les adresses non encore résolues, tant des mémoires adressées que des appels de fonction. L'entité exécutable est généralement soit un exécutable, soit une bibliothèque dynamique (DLLs sous windowsWindows et toutes les variantes, tels que objet COM, OCX, etc, et les .so sous linuxLinux).
 
Les compilateurs sont capables de générer des bibliothèques statiques, qui sont en quelques sortes le rassemblement d'un ensemble de fichiers objet au sein d'un même fichier. Dans ce cas, la phase d'édition de liens n'a pas eu lieu.