projets:systemesreseaux:compilesource
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Révision précédente | |||
| — | projets:systemesreseaux:compilesource [2024/04/16 22:26] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Création d'un binaire à partir des fichiers sources ====== | ||
| + | |||
| + | ===== Prérequis pour la compilation des sources ===== | ||
| + | |||
| + | Pour compiler les sources d'une application, | ||
| + | |||
| + | * gcc < | ||
| + | * wget < | ||
| + | |||
| + | ===== Compilation d'une application binaire à partir des sources ===== | ||
| + | |||
| + | Le but est de construire un fichier binaire exécutable (ou plusieurs suivant les applications) à partir des fichiers sources d'une application. | ||
| + | L' | ||
| + | < | ||
| + | $ wget http:// | ||
| + | </ | ||
| + | Pour en savoir plus sur cette application, | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | Dans un premier temps, il faut extraire les fichiers de l' | ||
| + | < | ||
| + | $ tar xf hello-2.9.tar.gz | ||
| + | </ | ||
| + | |||
| + | Un répertoire '' | ||
| + | < | ||
| + | $ cd hello-2.9 | ||
| + | </ | ||
| + | |||
| + | Vous pouvez examiner les fichiers du répertoire, | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | Cette application utilise les [[http:// | ||
| + | |||
| + | Le processus de compilation est décrit dans le schéma suivant: | ||
| + | [[http:// | ||
| + | |||
| + | Le processus est généralement le même pour toutes les applications construites autour de ces outils. Mais néanmoins, dans le doute, vous pouvez consulter dans l' | ||
| + | * README | ||
| + | * INSTALL | ||
| + | |||
| + | Pour commencer, analyse de l' | ||
| + | < | ||
| + | $ sh configure | ||
| + | </ | ||
| + | S'il n'y a pas d' | ||
| + | * d' | ||
| + | * de compilation, | ||
| + | |||
| + | Pour voir certaines de ces options: | ||
| + | < | ||
| + | $ ./configure -h # ou --help | ||
| + | </ | ||
| + | |||
| + | Après la configuration, | ||
| + | |||
| + | Pour procéder à la compilation et à la création des artefacts de l' | ||
| + | < | ||
| + | $ make | ||
| + | </ | ||
| + | |||
| + | Par défaut, le **make** cherche dans le fichier '' | ||
| + | |||
| + | Pour en apprendre plus sur [[http:// | ||
| + | < | ||
| + | $ make -h | ||
| + | </ | ||
| + | |||
| + | Ce qui nous donne quelques options intéressantes: | ||
| + | * **-f** pour fournir un autre fichier '' | ||
| + | * **-j** pour faciliter la compilation en mode tâches simultanées, | ||
| + | * **-n** afficher toutes les commandes de ce processus de compilation sans les exécuter (mode simulation). | ||
| + | |||
| + | Pour fournir et installer le binaires et les fichiers associés au bon fonctionnement de l' | ||
| + | < | ||
| + | # make install # ou $ sudo make install | ||
| + | </ | ||
| + | |||
| + | Une fois installée, vous pouvez apprécier l' | ||
| + | < | ||
| + | $ hello | ||
| + | </ | ||
| + | |||
| + | L' | ||
| + | < | ||
| + | $ hello -h | ||
| + | </ | ||
| + | |||
| + | Comme l' | ||
| + | < | ||
| + | # make uninstall # ou $ sudo make uninstall | ||
| + | </ | ||
| + | Il est bien entendu, que ceci se fait à partir du répertoire où se trouvent les sources de l' | ||
| + | |||
| + | Par contre le binaire est toujours disponible dans l' | ||
| + | est situé dans le répertoire '' | ||
| + | < | ||
| + | $ cd src | ||
| + | $ ./hello | ||
| + | </ | ||
| + | |||
| + | Pour enlever ce fichier de l' | ||
| + | < | ||
| + | $ make clean | ||
| + | </ | ||
| + | |||
| + | Pour nettoyer en profondeur, c'est à dire enlever les fichiers de la configuration, | ||
| + | < | ||
| + | $ make distclean | ||
| + | </ | ||
| + | et du coup, il faut refaire la configuration et la compilation depuis le début, si on veut avoir le binaire. | ||
| + | |||
| + | ===== Compilation: | ||
| + | |||
| + | Il existe d' | ||
| + | * à la main ou avec les pieds. | ||
| + | * utiliser un système alternatif. | ||
| + | |||
| + | Parmi les systèmes alternatifs, | ||
| + | |||
| + | Pour illustrer CMake, nous allons télécharger les sources de MySQL: | ||
| + | < | ||
| + | $ wget http:// | ||
| + | </ | ||
| + | MySQL utilise CMake. Et justement pour utiliser CMake, il faut installer les paquets Debian suivants: | ||
| + | < | ||
| + | $ sudo apt-get install cmake | ||
| + | </ | ||
| + | |||
| + | Installer l' | ||
| + | < | ||
| + | $ tar xf mysql-5.6.15.tar.gz | ||
| + | $ cd mysql-5.6.15 | ||
| + | </ | ||
| + | |||
| + | Explorez l' | ||
| + | Démarrer la configuration: | ||
| + | < | ||
| + | $ cmake . | ||
| + | </ | ||
| + | |||
| + | S'il n'y a pas d' | ||
| + | |||
| + | Avec CMake, il est possible de voir toutes les options disponibles lors de la configuration de l' | ||
| + | < | ||
| + | $ cmake . -L # ou cmake . -LH ou cmake . -LAH | ||
| + | </ | ||
| + | |||
| + | Enfin il existe aussi une version en interface utilisateur en mode texte: | ||
| + | < | ||
| + | $ sudo apt-get install cmake-curses-gui | ||
| + | $ ccmake . | ||
| + | </ | ||
| + | |||
| + | Voici le résultat dans la capture d' | ||
| + | {{ : | ||
