Warum kann ich keine Termcap-Bibliothek finden, wenn ich GDB erstelle?

10

make und dann fehlgeschlagen mit:

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

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 dort, 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

Bearbeiten 1 : auch fehlgeschlagen, auch mit den Optionen --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 : Jetzt baue ich, wie Patrice Tisserand sagte, aber auch fehlgeschlagen, mit einer anderen Fehlermeldung wie folgt.

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

Antworten:

18

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

suhastheju
quelle
2
Ich habe mir den Kopf zerbrochen, weil ich nicht bemerkt habe, dass ich einfach libncursesund nicht das Entwicklungspaket installiert habe .
Nathaniel Waisbrot
Dies sollte die akzeptierte Antwort sein. Bei OpenSUSE handelt es sich übrigens um ein ncurses-develPaket.
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 und --libdir sind Optionen für Installationsverzeichnisse .

Um Bibliotheken aus anderen Verzeichnissen zu verwenden, können Sie Folgendes versuchen:

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
quelle
Jetzt baue ich, wie du mir sagst, aber auch fehlgeschlagen, mit einer anderen Fehlermeldung wie folgt. siehe bearbeiten 2
hugemeow
Hallo, haben Sie versucht, distclean zu machen, wie in der Nachrichtenausgabe vorgeschlagen?
Patrice Tisserand
1

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

Dieses Beispiel zeigt, wie Sie erfolgreich sein können, wenn eine Ziel-native Termcap-Bibliothek fehlt (Crossbuilding ist hier etwas anders - verwenden Sie im Zweifelsfall ./configure --help):

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
quelle
Sie möchten das Ziel wirklich nicht so überschreiben, es sucht zur Laufzeit nach diesem Pfad auf dem Remote-Ziel, auf dem dieser Pfad nicht vorhanden ist. make DESTDIR=$HOME/work/cross installumgeht dieses Problem, hilft aber nicht, die Build-Abhängigkeiten zu finden
Ben Voigt