Perché non riesco a trovare la libreria termcap quando creo gdb?


9

make e poi fallito con:

configure: error: nessuna libreria termcap trovata , ma quella termcap lib è proprio lì, perché non riesci a trovarla?

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

Configuro gdb con:

[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

quella libreria di Tempcap è proprio lì come ho configurato per 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

Modifica 1 : fallito, anche con opzione --includedir e --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

Modifica 2 : Ora costruisco come ha detto Patrice Tisserand, ma ho anche fallito, con diversi messaggi di errore come segue.

[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 & amp; & amp; rendere

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

Risposte:


18

L'installazione di libncurses risolverà il tuo problema. Prova questo se stai usando un qualunque sistema operativo Debian: sudo apt-get install libncurses5-dev.


2
Mi stavo sbattendo la testa perché non ero riuscito a notare che avevo installato pianura libncurses e non il pacchetto di sviluppo.
Nathaniel Waisbrot

Questa dovrebbe essere la risposta accettata. A proposito, su OpenSUSE lo è ncurses-devel pacchetto.
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 e --libdir sono opzioni per installazione le directory.

Per poter utilizzare librerie da un'altra directory, puoi provare a fare quanto segue:

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 

ora ho costruito come tu mi hai detto, ma anche fallito, con diversi messaggi di errore come segue. vedi modifica 2
hugemeow

ciao, hai provato a fare distclean come suggerito nell'output dei messaggi?
Patrice Tisserand

1

Questo è stato estremamente utile: http://archive09.linux.com/feature/121735

Questo esempio mostra come avere successo quando trovi un target nativo   manca la libreria termcap (la costruzione incrociata è un po 'diversa qui   - usa ./configure --help in caso di dubbio):

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

Davvero non vuoi scavalcare un bersaglio come quello, inizierà a cercare quel percorso in fase di esecuzione , sul target remoto dove quel percorso non esiste. make DESTDIR=$HOME/work/cross install funziona su questo problema, ma non aiuta a trovare le dipendenze di compilazione
Ben Voigt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.