Compilation et exécution d'un programme
Pour compiler les devoirs et le projet, nous allons utiliser CMake
pour générer les outils de construction nécessaires
à la compilation du code dans un fichier binaire exécutable build/myFem
.
make
qui orchestre la compilation d'une application sur une plateforme précise.
Il est souvent d'usage d'exécuter CMake dans un répertoire appelé build, où tous les fichiers de compilation et les fichiers liés à l'IDE seront placés. Cela permet d'éviter de mélanger les fichiers de compilations avec les fichiers source du projet qui se trouvent ici dans les dossiers src et deps et qui resteront donc inchangés et propres après la compilation du projet. Si la procédure de compilation se passe mal, il suffit simplement de supprimer froidement tout ce qui se trouve dans le répertoire build et de réessayer !
- Instructions pour Linux (Ubuntu)
- Instructions pour MacOS
- Instructions pour Windows
- L'essentiel des commandes sur un terminal
Compiler son projet sur Linux (Ubuntu)
Tout d'abord, travailler sur un terminal est vraiment une bonne idée !
On vous conseille vraiment de découvrir comment compiler et exécuter vos devoirs et votre projet à partir d'un terminal. C'est vraiment la manière la plus efficace et la rapide de procéder, lorqu'on maitrise quelques commandes élémentaires. Si nécessaire, il suffit de jeter un petit oeil sur l'essentiel des commandes sur un terminal !
Il faut ensuite installer tous les outils nécessaires sur votre ordinateur !
Avec Linux, cette opération est particulièrement aisée. Il suffit d'introduire la commande suivante :
sudo apt-get install build-essential cmake xorg-dev libglu1-mesa-dev
Si vous souhaitez disposer une interface graphique de CMake, il suffit d'installer cmake-qt-gui ou cmake-curses-gui. pour une interface graphique utilisateur (GUI) de CMake. Dans ce cas, vous utiliserez
cmake-gui
ouccmake
au lieu decmake
pour utiliser l'interface graphique.A partir du fichier CMakeLists.txt, on construit le fichier Makefile du projet
Créer le Makefile (ne le faire qu'une seule fois):
mkdir build # Créer le répertoire **build** cd build # Aller dans le répertoire **build** cmake .. # Executer CMake avec .. en argument (.. est le répertoire parent)
Au lieu d'utiliser
cmake ..
pour générer un Makefile, vous pouvez aussi construire un projet pour Visual Studio, Sublime-Text, Eclipse... en utilisantcmake -G GENERATOR_NAME ..
. Générateurs disponibles sont listés aveccmake --help
.Si vous avez installé un version graphique de CMake, vous pouvez également suivre la partie des instructions windows concernant CMake, qui fonctionnent fondamentalement de la même manière.
A partir du fichier Makefile, on compile le projet
Pour compiler le projet et obtenir un exécutable (faites-le à chaque fois que vous modifiez un fichier)* :
Chaque fois que vous avez modifié l'un ou l'autre fichier, il suffit de relancer la commmandemake
make
qui recompilera uniquement ce qui doit être fait. C'est le rôle du fichier Makefile de contenir toutes les relations de dépendance du projet. Ces dépendances du projet pour une plateforme précise ont été obtenues à partir de la description duu fichier CMakeLists.txt fourni par nos bons soins.Si vous avez créé un fichier de projet pour un IDE au lieu d'un makefile en utilisant
cmake -G GENERATOR_NAME ..
), c'est l'IDE qui recompilera automatiquement le projet lorsque vous souhaiterez l'exécuter après avoir modifié certains fichiers sourcesEt finalement, vous exécutez votre programme :-)
Certains peuvent se demander pourquoi, on écrit./myFem
./
devant le nom du fichier exécutable. Cette petite astuce permet de signifier au shell de votre terminal que la commande doit être recherchée dans le répertoire courant et non pas dans la liste des répertoires définies par la variable d'environnement PATH. Ah oui, si vous utilisez un IDE, c'est via l'IDE que vous exécuterez votre projet évidemment.
Compiler son projet sur MacOS
Tout d'abord, travailler sur un terminal est vraiment une bonne idée !
On vous conseille vraiment de découvrir comment compiler et exécuter vos devoirs et votre projet à partir d'un terminal. C'est vraiment la manière la plus efficace et la rapide de procéder, lorqu'on maitrise quelques commandes élémentaires. Si nécessaire, il suffit de jeter un petit oeil sur l'essentiel des commandes sur un terminal !
Il faut ensuite installer tous les outils nécessaires sur votre ordinateur
Tout d'abord, il faut installer Xcode via le Mac Apple Store. C'est la procédure totalement habituelle pour les applications de votre Mac.
Ensuite, il faut installer Cmake en téléchargant le fichier dmg disponible via https://cmake.org/download/. Personnellement, j'avais utilisé https://github.com/Kitware/CMake/releases/download/v3.24.3/cmake-3.24.3-macos-universal.dmg. Mais, les versions plus récentes devraient aussi fonctionner.
Il reste à autoriser l'utilisation de
cmake
comme ligne de commande :sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
Si l'installation a réussi, il est possible de le vérifier avec la commande suivante. Elle devrait renvoyer le chemin absolu vers l'exécutable que vous venez d'installer
which cmake
A partir du fichier CMakeLists.txt, on construit le fichier Makefile du projet
Créer le Makefile (ne le faire qu'une seule fois):
mkdir build # Créer le répertoire **build** cd build # Aller dans le répertoire **build** cmake .. # Executer CMake avec .. en argument (.. est le répertoire parent)
Au lieu d'utiliser
cmake ..
pour générer un Makefile, vous pouvez aussi construire un projet pour XCode, Sublime-Text, Eclipse... en utilisantcmake -G GENERATOR_NAME ..
. Générateurs disponibles sont listés aveccmake --help
.Si vous souhaitez utiliser la version graphique de CMake, vous pouvez également suivre la partie des instructions windows concernant CMake, qui fonctionnent fondamentalement de la même manière.
A partir du fichier Makefile, on compile le projet
Pour compiler le projet et obtenir un exécutable (faites-le à chaque fois que vous modifiez un fichier)* :
Chaque fois que vous avez modifié l'un ou l'autre fichier, il suffit de relancer la commmandemake
make
qui recompilera uniquement ce qui doit être fait. C'est le rôle du fichier Makefile de contenir toutes les relations de dépendance du projet. Ces dépendances du projet pour une plateforme précise ont été obtenues à partir de la description duu fichier CMakeLists.txt fourni par nos bons soins.Si vous avez créé un fichier de projet pour un IDE au lieu d'un makefile en utilisant
cmake -G GENERATOR_NAME ..
), c'est l'IDE qui recompilera automatiquement le projet lorsque vous souhaiterez l'exécuter après avoir modifié certains fichiers sourcesEt finalement, vous exécutez votre programme :-)
Certains peuvent se demander pourquoi, on écrit./myFem
./
devant le nom du fichier exécutable. Cette petite astuce permet de signifier au shell de votre terminal que la commande doit être recherchée dans le répertoire courant et non pas dans la liste des répertoires définies par la variable d'environnement PATH. Ah oui, si vous utilisez un IDE, c'est via l'IDE que vous exécuterez votre projet évidemment.
Compiler son projet sous Windows
Tout d'abord, travailler sur un terminal reste toujours et encore une bonne idée !
Sous Windows10, il est possible d'utitliser le terminal bash natif fourni par Microsoft lui-même.. C'est vraiment une manière efficace de procéder. Eh oui, Windows 10 embarque nativement un terminal bash sous sa carapace. Le terminal Linux n’est pas nécessairement activé sur votre système. Pour le vérifier, recherchez le logiciel
bash
dans le menu Démarrer. Cela n'est pas disponible pour les versions antérieures de Windows :-) < On va donc vous expliquer ici comment procéder pour obtenir une exécutable avec VisualStudio, sans passer par le terminal Linux, si vous n'en disposez pas ou que vous êtes totalement allergiques à cette idée.Installer Cmake sur votre ordinateur
On installe tout Cmake en téléchargant un des versions disponibles via https://cmake.org/download/.
A la date du 30 mars 2023, les dernières versions sont celles indiquées, ci-dessous :-)
Mais, c'est toujours une meilleure idée d'installer la dernière version disponible dans l'URL générique https://cmake.org/download/ !
Comme dirait Miguel, il faut être un peu débrouillards !
Installer une version x64 : https://github.com/Kitware/CMake/releases/download/v3.26.1/cmake-3.26.1-windows-x86_64.msi
Installer une version i386 : https://github.com/Kitware/CMake/releases/download/v3.26.1/cmake-3.26.1-windows-i386.msi
Installer une version i386 : https://github.com/Kitware/CMake/releases/download/v3.26.1/cmake-3.26.1-windows-arm64.msi
Attention : ajouter CMake au PATH système pour tous les utilisateurs !!!!Installer Visual Studio sur votre ordinateur
L'installation se fait via https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=16.
Bien vérifier que vous avez l'environnement de développement pour le C++.
En d'autres mots, il s'agit donc de vérifier que la case Desktop development with C++ est bien cochée. :-)Créer un projet Visual Studio avec CMake
Créer un répertoire nommé build dans le répertoire contenant src et deps
Lancer CMake GUI avecWin+S, "cmake-gui", Enter
Pour la localisation des sources, sélectionner le répertoire contenant src et deps
Pour la localisation des binaires, sélectionner le répertoire build.
Cliquer finalement sur le boutonConfigure
.
Une fenêtre pop-up va alors apparaître :-)
- Eventuellement sélectionner votre version de VisualStudio et Win64 si votre ordinateur supporte 64-bit
- Cliquer sur le bouton
Finish
- Attendre ! Cela peut prendre plusieurs minutes !
- Ne vous inquiétez pas du contenu rouge.
Cliquer sur le boutonGenerate
.
Cliquer sur le boutonOpen Project
.Compiler le programme dans Visual Studio
If faut utiliser le raccourciCtrl+Maj+B
ou dans le menu supérieur de l'IDE, cliquerBuild -> Build Solution
ouGénérer -> Générer la Solution
Exécuter le programme dans Visual Studio
If faut utiliser le raccourciCtrl+f5
ou dans le menu supérieur de l'IDE, cliquerDebug -> Start Without Debugging
ouDéboguer -> Exécuter sans Débogage
L'essentiel des commandes sur un terminal
Quelques commandes particulièrement utiles...
ls
Lister les fichiers (list)cd
Changer de répertoire courant (change directory)mkdir
Créer un répertoire (make directory)touch
Faire comme si on avait modifié un fichier, le créer si il n'existe pas (touch)cat
Concaténe des fichiers et affiche leur contenu sur la sortie standard (concatenate)mv
Déplace ou renomme des fichiers ou des répertoires (move)cp
Copie des fichiers (copy)rm
Supprime des fichiers (remove)rmdir
Supprime des répertoires (remove directory)chmod
Change les permissions d'accès d'un fichier ou d'un répertoire (change mode)man
Accède aux manuels d'une commande ou d'un programme (manual)La complétion automatique
Vous pouvez compléter automatiquement la plupart des commandes en appuyant surTab ↹
. Si cela ne fonctionne pas, cela signifie qu'il existe de multiples possibilités d'auto-complétion. En appuyant une deuxième fois surTab ↹
, vous devriez voir apparaître toutes les possibilités. Il est vachement d'essayer la complétion car cela permet de vérifier progressivement l'exactitude de votre commande pendant que vous la dactylographiez. En effet, si vous appuyez deux fois sur le touche de tabulation et que rien n'apparaît, cela signifie très souvent que votre commande est entâchée d'une faute de frappe.