Tại sao tôi không thể tìm thấy thư viện termcap khi tôi xây dựng gdb?


10

make và sau đó thất bại với:

configure: error: không tìm thấy thư viện termcap , nhưng lib termcap đó chỉ ở đó, tại sao không thể tìm thấy nó?

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

Tôi cấu hình gdb với:

[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

thư viện tempcap chỉ ở đó khi tôi định cấu hình cho 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

Chỉnh sửa 1 : không thành công, ngay cả với tùy chọn --includedir và --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

Chỉnh sửa 2 : Bây giờ tôi xây dựng như Patrice Tisserand đã nói, nhưng cũng thất bại, với thông báo lỗi khác nhau như sau.

[mirror @ hugemeow gdb-7.5] $ CFLAGS = "- I / var / lib / gforge / chroot / home / users / mirror / ins / in-gdb / include /" LDFLAGS = "- L / var / lib / gforge / chroot / home / users / mirror / in / in-gdb / lib / "./cool && 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

Câu trả lời:


18

Cài đặt libncurses sẽ giải quyết vấn đề của bạn. Hãy thử điều này nếu bạn đang sử dụng bất kỳ HĐH Debian nào : sudo apt-get install libncurses5-dev.


2
Tôi đã đập đầu vào điều này vì tôi không nhận thấy rằng tôi đã cài đặt đơn giản libncursesvà không phải gói phát triển.
Nathaniel Waisbrot

Đây phải là câu trả lời được chấp nhận. Nhân tiện, trên OpenSUSE, nó là ncurses-develgói.
Anh Tuấn

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 những lựa chọn cho cài đặt thư mục.

Để sử dụng các thư viện từ các thư mục khác, bạn có thể thử làm như sau:

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 

Bây giờ tôi xây dựng như bạn nói với tôi, nhưng cũng thất bại, với thông báo lỗi khác nhau như sau. xem chỉnh sửa 2
hugemeow

xin chào, bạn đã thử làm distclean như đề xuất trong đầu ra tin nhắn chưa?
Patrice Tisserand

1

Điều này cực kỳ hữu ích: http://archive09.linux.com/feature/121735

Ví dụ này cho thấy làm thế nào để thành công khi bạn tìm thấy một thư viện thuật ngữ gốc đích bị thiếu (xây dựng chéo có phần khác ở đây - sử dụng ./cool - trợ giúp khi nghi ngờ):

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

Bạn thực sự không muốn ghi đè mục tiêu như thế, nó sẽ bắt đầu tìm đường dẫn đó trong thời gian chạy , trên mục tiêu từ xa nơi đường dẫn đó không tồn tại. make DESTDIR=$HOME/work/cross installgiải quyết vấn đề đó, nhưng không giúp tìm ra các phụ thuộc xây dựng
Ben Voigt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.