Почему я не могу найти библиотеку termcap при сборке GDB?

21071
hugemeow

make и затем потерпел неудачу с:

configure: error: библиотека termcap не найдена, но библиотека lib termcap просто есть, почему не удается ее найти?

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 

Я настраиваю GDB с:

[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 

эта библиотека tempcap как раз там, где я настроил 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 

Редактировать 1 : тоже не удалось, даже с опциями --includedir и --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 

Редактировать 2 : Теперь я строю, как сказал Патрис Тиссеранд, но тоже не удалось, с другим сообщением об ошибке, как показано ниже.

[mirror @ огромноеmeg 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 
9

3 ответа на вопрос

18
suhastheju

Installing libncurses will solve your problem. Try this if you are using any Debian OS: sudo apt-get install libncurses5-dev.

Я бился головой об этом, потому что не заметил, что установил простые `libncurses`, а не пакет разработки. Nathaniel Waisbrot 11 лет назад 2
Это должен быть принятый ответ. Кстати, в OpenSUSE это пакет `ncurses-devel`. Anh Tuan 9 лет назад 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 и --libdir варианты для установки каталогов.

Чтобы использовать библиотеки из других каталогов, вы можете попробовать сделать следующее:

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 
Теперь я строю, как вы говорите, но также не удалось, с другим сообщением об ошибке, как показано ниже. см редактировать 2 hugemeow 12 лет назад 0
привет, вы пытались сделать distclean как предложено в выводе сообщения? Patrice Tisserand 12 лет назад 0
1
Jamie

This was extremely helpful: http://archive09.linux.com/feature/121735

This example shows how to succeed when you find a target-native termcap library is missing (cross building is somewhat different here -- use ./configure --help when in doubt):

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 
Вы действительно не хотите переопределять цель таким образом, она начнет искать этот путь ** во время выполнения **, на удаленной цели, где этот путь не существует. `make DESTDIR = $ HOME / work / cross install` решает эту проблему, но не помогает найти зависимости для сборки Ben Voigt 8 лет назад 0

Похожие вопросы