gdbをビルドするときにtermcapライブラリが見つからないのはなぜですか?


10

make そして失敗しました:

configure:error:termcapライブラリが見つかりませんでしたが、そのtermcap libはそこにありますが、なぜそれを見つけられないのですか?

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をインストールすると問題が解決します。Debian OSを使用している場合は、これを試してください sudo apt-get install libncurses5-dev


2
libncurses開発パッケージではなくプレーンインストールしたことに気付かなかったので、これに頭を悩ませていました。
Nathaniel Waisbrot 2013

これは受け入れられる答えになるはずです。ちなみに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を作成しようとしましたか?
Patrice Tisserand、2012年

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.