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 № 1Vous 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.