3. C++ et le monde extérieur



sommaire chapitre 3

3.10. Compiler des librairies externes

3.10.1. Téléchargement et désarchivage

3.10.1.a  Téléchargement depuis un site web

Se rendre sur le site web et trouver la dernière version release disposant des sources

Exemple: nasm.us

3.10.1.b  utilisation de wget

wget est un programme en ligne de commande non interactif de téléchargement de fichiers depuis le Web. Il supporte les protocoles HTTP, HTTPS et FTP ainsi que le téléchargement au travers des proxies HTTP.

Exemple pour télécharger depuis nasm.us:

sudo wget -P /opt http://www.nasm.us/pub/nasm/releasebuilds/2.11.09rc1/nasm-2.11.09rc1.tar.gz

3.10.1.c  utilisation de git

git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2.

Exemple pour récupérer googletest :

sudo su
cd /opt
git clone https://github.com/google/googletest.git

La commande précédente va créer un répertoire /opt/googletest.

3.10.1.d  désarchivage

En fonction de l'extension du fichier on utilisera l'utilitaire adéquat :

.tar
tar -xf monfichier.tar -C /repertoire

.tar.gz ou .tgz
tar -xzf monfichier.tgz -C /repertoire

.bz2
tar -xjf monfichier.tgz -C /repertoire

.zip
unzip monfichier.zip -d /repertoire

.rar
unrar x monfichier.rar -C /repertoire

3.10.2. Compilation

Généralement un fichier INSTALL ou INSTALL.txt est fourni et indique comment compiler et installer la librairie. Parfois il est absent et il faut se référer à un fichier README ou README.txt.

3.10.2.a  compilation avec autotools

Pour la plupart des librairies, générées avec autotools, on utilise la suite de commandes suivantes :

sh autogen.sh ou ./autogen.sh
sh configure ou ./configure
make
make install

Parfois il est nécessaire de lancer un make check avant le make install qui a pour but de vérifier que la librairie fonctionne correctement.

3.10.2.b  cmake

Exemple pour googletest, il existe un seul fichier README.md et aucune explication concernant la compilation. Néanmoins on trouve une fichier CMakeLists.txt, on en déduit donc qu'il faut utiliser cmake. Il n'existe pas de cible install dans le Makefile, il faut réaliser l'installation à la main.

cmake -G "Unix Makefiles"
make