Dlaczego nie mogę znaleźć biblioteki termcap podczas kompilacji gdb?

10

make a następnie nie udało się:

configure: error: nie znaleziono biblioteki termcap , ale ta biblioteka termcap jest właśnie tam, dlaczego nie można jej znaleźć?

checking for library containing zlibVersion... -lz
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for library containing dlgetmodinfo... no
checking for iconv... yes
checking for iconv declaration... install-shextern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for library containing waddstr... no
configure: WARNING: no enhanced curses library found; disabling TUI
checking for library containing tgetent... no
configure: error: no termcap library found
make[1]: *** [configure-gdb] Error 1
make[1]: Leaving directory `/var/lib/gforge/chroot/home/users/mirror/tmp/gdb-7.5'
make: *** [all] Error 2

Konfiguruję gdb za pomocą:

[mirror@hugemeow gdb-7.5]$ ./configure --libdir=/var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/lib/


checking where to find the target readelf... host tool
checking where to find the target strip... host tool
checking where to find the target windres... host tool
checking where to find the target windmc... host tool
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether -fkeep-inline-functions is supported... yes
configure: creating ./config.status
config.status: creating Makefile

ta biblioteka tempcap jest właśnie tam, jak skonfigurowałem gdb :

[mirror@hugemeow gdb-7.5]$ ls /var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/lib/
libtermcap.a
[mirror@hugemeow gdb-7.5]$ ls /var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/include/
termcap.h

Edycja 1 : nie powiodło się, nawet z opcjami --includedir i --libdir ...

[mirror@hugemeow gdb-7.5]$ ./configure --includedir=/var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/include/  --libdir=/var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/lib/
make
    checking for library containing tgetent... no
configure: error: no termcap library found
make[1]: *** [configure-gdb] Error 1
make[1]: Leaving directory `/var/lib/gforge/chroot/home/users/mirror/tmp/gdb-7.5'
make: *** [all] Error 2

Edycja 2 : Teraz buduję, jak powiedział Patrice Tisserand, ale również nie powiodło się, z innym komunikatem o błędzie w następujący sposób.

[mirror @ hugemeow gdb-7.5] $ CFLAGS = "- I / var / lib / gforge / chroot / home / users / mirror / ins / ins-gdb / include /" LDFLAGS = "- L / var / lib / gforge / chroot / home / users / mirror / ins / ins-gdb / lib / "./configure && make

make[1]: Entering directory `/var/lib/gforge/chroot/home/users/mirror/tmp/gdb-7.5'
Configuring in ./intl
configure: loading cache ./config.cache
configure: error: `CFLAGS' has changed since the previous run:
configure:   former value:  `-g -O2'
configure:   current value: `-I/var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/include/'
configure: error: `LDFLAGS' has changed since the previous run:
configure:   former value:  ` '
configure:   current value: ` -L/var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/lib/'
configure: error: in `/var/lib/gforge/chroot/home/users/mirror/tmp/gdb-7.5/intl':
configure: error: changes in the environment can compromise the build
configure: error: run `make distclean' and/or `rm ./config.cache' and start over
make[1]: *** [configure-intl] Error 1
make[1]: Leaving directory `/var/lib/gforge/chroot/home/users/mirror/tmp/gdb-7.5'
make: *** [all] Error 2
hugemeow
źródło

Odpowiedzi:

18

Instalacja libncurses rozwiąże twój problem. Spróbuj tego, czy używasz żadnego Debiana OS: sudo apt-get install libncurses5-dev.

suhastheju
źródło
2
Waliłem w to głową, ponieważ nie zauważyłem, że zainstalowałem zwykły libncursespakiet, a nie pakiet programistyczny.
Nathaniel Waisbrot
To powinna być zaakceptowana odpowiedź. Nawiasem mówiąc, w OpenSUSE jest to ncurses-develpakiet.
Anh Tuan
3
./configure --includedir=/var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/include/  --libdir=/var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/lib/

--includedir i --libdir są opcjami katalogów instalacyjnych .

Aby użyć bibliotek z innych katalogów, możesz spróbować wykonać następujące czynności:

CFLAGS="-I/var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/include/" LDFLAGS="-L/var/lib/gforge/chroot/home/users/mirror/ins/ins-gdb/lib/" ./configure 
Patrice Tisserand
źródło
teraz buduję, jak mi mówisz, ale również nie powiodło się, z innym komunikatem o błędzie w następujący sposób. patrz edycja 2
hugemeow
cześć, czy próbowałeś zrobić distclean zgodnie z sugestią w treści komunikatu?
Patrice Tisserand
1

Było to niezwykle pomocne: http://archive09.linux.com/feature/121735

Ten przykład pokazuje, jak odnieść sukces, gdy stwierdzisz brak natywnej biblioteki termcap (budowanie krzyżowe jest tu nieco inne - użyj ./configure --help w razie wątpliwości):

cd ~/work/cross/gdb/downloads
wget ftp://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz
cd ..
tar xvzf downloads/termcap-1.3.1.tar.gz
mkdir -p ~/work/cross/gdb/build/termcap
cd ~/work/cross/gdb/build/termcap

export CC=powerpc-7450-linux-gnu-gcc
export RANLIB=powerpc-7450-linux-gnu-ranlib
../../termcap-1.3.1/configure --host=powerpc-7450-linux-gnu --prefix=$HOME/work/cross/termcap
make
make install
Jamie
źródło
Naprawdę nie chcesz zastępować celu w ten sposób, zacznie on szukać tej ścieżki w czasie wykonywania na zdalnym celu, w którym ta ścieżka nie istnieje. make DESTDIR=$HOME/work/cross installrozwiązuje ten problem, ale nie pomaga znaleźć zależności kompilacji
Ben Voigt