Mengapa saya tidak bisa menemukan perpustakaan termcap ketika saya membangun gdb?

9

make dan kemudian gagal dengan:

configure: error: tidak ada perpustakaan termcap ditemukan , tapi lib termcap itu ada di sana, mengapa tidak dapat menemukannya?

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

Saya mengkonfigurasi gdb dengan:

[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

bahwa perpustakaan tempcap ada di sana saat saya mengkonfigurasi ke 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

Edit 1 : gagal juga, bahkan dengan opsi --includedir dan --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 : Sekarang saya membangun seperti yang dikatakan Patrice Tisserand, tetapi juga gagal, dengan pesan kesalahan yang berbeda sebagai berikut.

[mirror @ hugemeow gdb-7.5] $ CFLAGS = "- I / var / lib / gforge / chroot / home / pengguna / mirror / ins / ins-gdb / termasuk /" LDFLAGS = "- L / var / lib / gforge / chroot / home / users / mirror / ins / ins-gdb / lib / "./configure & amp; & amp; membuat

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
sumber

Jawaban:

18

Menginstal libncurses akan menyelesaikan masalah Anda. Coba ini jika Anda menggunakan OS Debian apa pun: sudo apt-get install libncurses5-dev.

suhastheju
sumber
2
Saya memukul-mukul kepala saya karena saya tidak menyadari bahwa saya telah menginstal plain libncurses dan bukan paket pengembangan.
Nathaniel Waisbrot
Ini harus menjadi jawaban yang diterima. Ngomong-ngomong di OpenSUSE itu ncurses-devel paket.
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 dan --libdir adalah opsi untuk instalasi direktori.

Untuk menggunakan perpustakaan dari direktori lain, Anda dapat mencoba melakukan hal berikut:

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
sumber
sekarang saya membangun seperti yang Anda katakan, tetapi juga gagal, dengan pesan kesalahan berbeda sebagai berikut. lihat edit 2
hugemeow
halo, apakah Anda mencoba melakukan distclean seperti yang disarankan dalam output pesan?
Patrice Tisserand
1

Ini sangat membantu: http://archive09.linux.com/feature/121735

Contoh ini menunjukkan cara untuk berhasil ketika Anda menemukan target-asli   perpustakaan termcap tidak ada (lintas bangunan agak berbeda di sini   - gunakan ./configure --help bila ragu):

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
sumber
Anda benar-benar tidak ingin menimpa target seperti itu, itu akan mulai mencari jalan itu saat runtime , pada target jarak jauh di mana jalur itu tidak ada. make DESTDIR=$HOME/work/cross install mengatasi masalah itu, tetapi tidak membantu menemukan dependensi build
Ben Voigt