Créer une bibliothèque et l’utiliser dans un projet avec autoconf et automake

Problème

Votre projet contient une bibliothèque dans un répertoire et vous souhaiteriez l’utiliser dans un programme dont le code source se trouve dans un autre répertoire.

Solution

Programmez vos scripts de manière à compiler la bibliothèque en premier, puis indiquez les bons chemins pour les fichiers d’en-têtes à la compilation du programme et pour la bibliothèque lors de l’édition des liens.

Discussion

L’ordre de compilation des composants d’un projet correspond à l’ordre des répertoires listés dans la variable SUBDIRS dans le fichier Makefile.am du répertoire racine des sources. Pour un projet contenant une bibliothèque dans le répertoire libtest/ et un programme dans le répertoire src/, la bibliothèque sera compilée avant le programme avec un fichier Makefile.am contenant ceci :


SUBDIRS=libtest src 

Dans le fichier Makefile.am dans le répertoire du programme, vous souhaitez indiquer au compilateur (option -I) et à l’éditeur de liens (option -L) le chemin de la bibliothèque. Ces chemins ne peuvent pas être relatifs au répertoire courant car dans certaines conditions (lors de l’exécution de make distcheck par exemple), l’emplacement de ces répertoire n’est plus le même. Nous nous baserons par rapport au répertoire...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Utiliser autoconf, automake et libtool pour créer une bibliothèque
Suivant
Introduction