/ / Autotools - définir le chemin vers la bibliothèque - linux, autotools, autoconf, automake

Autotools - définit le chemin d'accès à la bibliothèque - linux, autotools, autoconf, automake

Dans mon système Debian, il y a une bibliothèque installée. Je ne veux pas faire de correctif à la bibliothèque et à l'application qui l'utilise. J'ai donc téléchargé les sources des packages de la bibliothèque et de l'application. Ensuite, j'ai patché une bibliothèque et je l'ai construite (sans l'installer sur le système).

Maintenant, quand je ./configure l'application, les outils automatiques détectent la version du système de la bibliothèque, pas la mienne. Donc j'ai fait ./configure CFLAGS=-I/home/aquirel/dev/vte-0.28.2/src LDFLAGS=-L/home/aquirel/dev/vte-0.28.2/src/.libs

Existe-t-il un moyen plus intelligent de le faire? Parce que l'utilisation de cette approche génère un script wrapper temporaire libtool au lieu d'un binaire exécutable.

Et aussi, je ne veux pas installer une version corrigée d'une bibliothèque sur le système avant de l'avoir testée dans l'application.

Réponses:

1 pour la réponse № 1

Vous pouvez installer le vte package utilisant le DESTDIR installer:

$ cd /home/aquirel/dev/vte-0.28.2
$ make DESTDIR=/home/aquirel/dev/test-vte install

Cela installera tous les en-têtes / bibliothèques sur /home/aquirel/dev/test-vte Comme si c'était /. Vous devrez définir des chemins pour configure un peu différemment:

$ ./configure CFLAGS=-I/home/aquirel/dev/test-vte/usr/local/include LDFLAGS=-L/home/aquirel/dev/test-vte/usr/local/lib

et configuration LD_LIBRARY_PATH pour le vte bibliothèques partagées également pour votre environnement de test d'application.

Parce que l'utilisation de cette approche génère un script wrapper temporaire libtool au lieu d'un binaire exécutable.

libtool crée toujours un script wrapper pour les applications qui lient les bibliothèques partagées. Si vous devez exécuter votre application sous Valgrind ou gdb, voir ici pour plus d'informations sur libtool"s --mode=execute option.