Warum kann ich die termcap-Bibliothek nicht finden, wenn ich gdb baue?

21117
hugemeow

make und scheiterte dann mit:

configure: Fehler: Es wurde keine Termcap-Bibliothek gefunden, aber diese Termcap-Bibliothek ist nur vorhanden. Warum kann sie sie nicht finden?

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 

Ich konfiguriere gdb mit:

[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 

Diese Tempcap-Bibliothek ist genau so vorhanden, wie ich sie für gdb konfiguriert habe :

[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 

Edit 1 : entweder fehlgeschlagen, auch mit der Option --includedir und --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 

Edit 2 : Nun baue ich wie Patrice Tisserand mitteilte, scheiterte aber auch mit anderer Fehlermeldung wie folgt.

[mirror @ hugemeow gdb-7.5] $ CFLAGS = "- I / var / lib / gforge / chroot / home / benutzer / 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 
9

3 Antworten auf die Frage

18
suhastheju

Die Installation von libncurses löst Ihr Problem. Versuchen Sie dies, wenn Sie irgendeine Debian OS verwenden: sudo apt-get install libncurses5-dev.

Ich habe mir den Kopf angeschlagen, weil ich nicht bemerkt hatte, dass ich nur "libncurses" installiert hatte und nicht das Entwicklungspaket. Nathaniel Waisbrot vor 11 Jahren 2
Dies sollte die akzeptierte Antwort sein. Bei OpenSUSE handelt es sich übrigens um das Paket "ncurses-devel". Anh Tuan vor 9 Jahren 0
3
Patrice Tisserand
./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 and --libdir are options for installation directories.

In order to use libraries from another directories, you can try to do the following:

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 
jetzt baue ich wie du es mir erzählst, aber auch fehlgeschlagen, mit abweichender Fehlermeldung wie folgt. siehe Bearbeiten 2 hugemeow vor 12 Jahren 0
Hallo, haben Sie versucht, distclean zu machen, wie in der Nachrichtenausgabe vorgeschlagen? Patrice Tisserand vor 12 Jahren 0
1
Jamie

Dies war äußerst hilfreich: http://archive09.linux.com/feature/121735

Dieses Beispiel zeigt, wie Sie erfolgreich sein können, wenn Sie feststellen, dass eine Ziel-native Termcap-Bibliothek fehlt.

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 
Sie möchten das Ziel wirklich nicht überschreiben, es wird zur Laufzeit ** gesucht, ** auf dem Remote-Ziel, wo der Pfad nicht vorhanden ist. `make DESTDIR = $ HOME / work / cross install` umgeht dieses Problem, hilft jedoch nicht, die Build-Abhängigkeiten zu finden Ben Voigt vor 8 Jahren 0