projets:systemesreseaux:compilesource
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
projets:systemesreseaux:compilesource [2014/01/15 22:14] – [Compilation d'une application binaire à partir des sources] christian.jacolot | 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' | ||
+ | {{ : | ||