W moim systemie Debian jest zainstalowana biblioteka. Nie mogę zrobić poprawki do biblioteki i aplikacji, która z niej korzysta. Pobrałem więc źródła bibliotek i pakietów aplikacji. Potem załatałem bibliotekę i zbudowałem ją (bez instalowania jej w systemie).
Teraz, kiedy ja ./configure
aplikacja, autotools wykrywa wersję systemu biblioteki, a nie kopalnię. Więc zrobiłem ./configure CFLAGS=-I/home/aquirel/dev/vte-0.28.2/src LDFLAGS=-L/home/aquirel/dev/vte-0.28.2/src/.libs
Czy jest na to bardziej inteligentny sposób? Ponieważ użycie tego podejścia generuje tymczasowy skrypt opakowujący libtool zamiast wykonywalnego pliku binarnego.
Ponadto nie chcę instalować poprawionej wersji biblioteki do systemu, dopóki nie przetestuję jej w aplikacji.
Odpowiedzi:
1 dla odpowiedzi № 1Możesz zainstalować vte
pakiet za pomocą DESTDIR zainstalować:
$ cd /home/aquirel/dev/vte-0.28.2
$ make DESTDIR=/home/aquirel/dev/test-vte install
Spowoduje to zainstalowanie wszystkich nagłówków / bibliotek do /home/aquirel/dev/test-vte
Jakby to było /
. Musisz skonfigurować ścieżki do configure
trochę inaczej:
$ ./configure CFLAGS=-I/home/aquirel/dev/test-vte/usr/local/include LDFLAGS=-L/home/aquirel/dev/test-vte/usr/local/lib
i konfiguracja LD_LIBRARY_PATH
dla vte
biblioteki współdzielone, jak również dla środowiska testowego aplikacji.
Ponieważ użycie tego podejścia generuje tymczasowy skrypt opakowujący libtool zamiast wykonywalnego pliku binarnego.
libtool
zawsze tworzy skrypt opakowujący dla aplikacji, które łączą biblioteki współdzielone. Jeśli potrzebujesz uruchomić aplikację w Valgrind lub gdb, zobacz tutaj, aby uzyskać więcej informacji na temat libtool
"s --mode=execute
opcja.