/ / Autotools - ustaw ścieżkę do biblioteki - linux, autotools, autoconf, automake

Autotools - ustaw ścieżkę do biblioteki - linux, autotools, autoconf, automake

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

Moż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.