Чому я не можу знайти бібліотеку termcap під час створення gdb?


10

make а потім не вдалося:

configure: error: бібліотека termcap не знайдена , але ця вказка 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 : Тепер я будую так, як сказав Патріс Тиссеранд, але також не вдався, з різним повідомленням про помилку, як описано нижче.

[дзеркало @ hugemeow gdb-7.5] $ CFLAGS = "- I / var / lib / gforge / chroot / home / users / mirror / ins / ins-gdb / include /" LDFLAGS = "- L / var / lib / gforge / chroot / home / користувачів / дзеркало / 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

Відповіді:


18

Встановлення libncurses вирішить вашу проблему. Спробуйте це, якщо ви використовуєте будь-яку ОС Debian : sudo apt-get install libncurses5-dev.


2
Я стукав головою про це, бо не зміг помітити, що встановив звичайний, libncursesа не пакет розробки.
Натаніель Вайсброт

Це має бути прийнятою відповіддю. До речі на OpenSUSE це ncurses-develпакет.
Ань Туан

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 і --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

привіт, ти намагався зробити distclean, як було запропоновано у виведенні повідомлення?
Патріс Тиссеран

1

Це було надзвичайно корисно: http://archive09.linux.com/feature/121735

Цей приклад показує, як досягти успіху, коли ви знайдете цільову нативну бібліотеку termcap (відсутня перехресна побудова тут дещо інша - використовуйте ./configure - допомогти, коли сумніваєтесь):

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.