gdb를 빌드 할 때 termcap 라이브러리를 찾을 수없는 이유는 무엇입니까?


10

make 그런 다음 실패했습니다.

구성 : 오류 : 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 : 이제 Patrice Tisserand가 말한 것처럼 빌드하지만 다음과 같은 다른 오류 메시지와 함께 실패했습니다.

[mirror @ hugemeow 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

답변:


18

libncurses를 설치하면 문제가 해결됩니다. 데비안 OS를 사용하는 경우 이것을 시도하십시오 : sudo apt-get install libncurses5-dev.


2
libncurses개발 패키지가 아닌 일반 설치를 알지 못했기 때문에 이것에 대해 머리를 두드리고있었습니다 .
Nathaniel Waisbrot

이것이 정답입니다. 그건 그렇고 OpenSUSE에서는 ncurses-devel패키지입니다.
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--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 --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

실제로 대상을 재정의하고 싶지는 않습니다 . 런타임 에 해당 경로가 존재하지 않는 원격 대상에서 해당 경로를 찾기 시작 합니다. make DESTDIR=$HOME/work/cross install이 문제를 해결하지만 빌드 종속성을 찾는 데 도움이되지 않음
Ben Voigt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.