Outils de compilation
A chaque modification du code, celui-ci doit être (re-)compilé en un executable, qui est ensuite lancé directement par le système d'exploitation. La compréhension précise des instructions de compilation et des différents outils associé est complexe et dépasse le cadre d'INF443 (les cours de 3A INF564 "Compilation" et INF559 "Architecture des ordinateurs et systèmes d'exploitation" sont dédiés à l'explication précise de ces processus).Explication des outils utilisés
De manière très simplifiée: La compilation nécessite d'appeler un compilateur (qui dépend de votre système d'exploitation) sur chaque fichier source de votre programme C++ (les fichiers d'extensions .cpp).Ce processus peut être fait manuellement dans le cas où vous n'avez qu'un seul fichier (ex. Sous Linux/Mac, on tapera en ligne de commande "g++ nomDuFichier.cpp -o nomExecutable"), mais devient longue et répétitive pour un programme comportant plusieurs fichiers (et encore pire sur Windows où les chemins et la ligne de commande sont moins pratique à utiliser). Pour rendre la démarche plus automatique, différents outils ont été mis en place afin d'appeler le compilateur sur tous les fichiers du projet.
- - Sous Linux/Mac, on utilise classiquement un fichier d'instructions Makefile qui est utilisé par l'outil "make" en ligne de commande qui permet d'automatiser des suites d'instructions avec gestion de dépendances.
- - Sous Windows, les fichiers d'instructions éditables et la ligne de commande sont moins courants. Les projets sont alors généralement décrits dans un format qui dépend de votre IDE - dans notre cas il s'agit d'un fichier de configuration de projet de Visual Studio (fichier d'extension .sln).
- - CMake est un logiciel dont le rôle est de générer un fichier de configuration de votre projet, qui sera ensuite utilisé pour lancer la compilation sur chaque fichier source.
-
- - Notez que CMake ne réalise pas la compilation du projet lui même, il ne fait que générer un fichier décrivant votre projet pour le compilateur.
- - CMake est lui même paramétré par le fichier CMakeLists.txt. Ce fichier est fourni dans les codes d'exemples.
- - CMake possède également l'avantage d'être reconnu par plusieurs IDE (ex. QtCreator) qui peuvent le lire et naviguer dans vos fichiers sources. Le processus de création d'un Makefile intermédiaire est donc transparent pour vous.
- - Le fichier de sortie généré par CMake va dépendre de votre système d'exploitation. Sous Linux/MacOS, il s'agira typiquement d'un Makefile, alors que sous Windows il s'agit d'un fichier de configuration d'un projet Visual Studio. Ces fichiers de sorties, typiquement écrits dans le répertoire build/ sont des fichiers temporaires. Ils peuvent être supprimés sans risques puis re-générées par la suite.
- - CMake n'est à appeler qu'une seule et unique fois sur le CMakeLists.txt avant de lancer votre toute première compilation (ou d'ouvrir votre projet avec Visual Studio).
- - A chaque fois que le code est modifié, vous devez par contre recompiler celui-ci. Si vous utilisez un IDE, cette étape se réalise cependant automatiquement (en ligne de commande sous Linux/MacOS il faudrait tapper "make"). Mais CMake n'a pas besoin d'être relancé.
- - Si vous ajouter ou supprimer un fichier source. Dans ce cas le listing des fichiers qui est automatiquement généré par CMake doit être remis à jour.
-
- \(\Rightarrow\) Cette page explique la procédure à suivre.
- La configuration donnée dans vos code inclue dans les projets automatiquement tous les fichiers se terminant par .cpp de manière automatique et réccursive dans les répertoires.
- - Si vous changez de machine. Dans ce cas, les liens vers les bibliothèques et les fichiers, généralement codés depuis un chemin absolu, doivent être mis à jour.