जब मैं gdb का निर्माण करता हूं तो मुझे लाइब्रेरी क्यों नहीं मिल सकती है?


10

make और फिर इसके साथ विफल:

कॉन्फ़िगर करें: त्रुटि: कोई भी टर्मकैप लाइब्रेरी नहीं मिली , लेकिन जो टर्मबेक लीब है, बस वहीं है, इसे क्यों नहीं खोज सकते?

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

जैसे ही मैं 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 / दर्पण / ins / ins-gdb / शामिल /" LDFLAGS = "- L / var / lib / gforge / chroot / home / users / दर्पण / ins / ins-gdb / lib / "./configure && मेक

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और विकास पैकेज नहीं।
नथानिएल वैबब्रोट

यह स्वीकृत उत्तर होना चाहिए। वैसे 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

हैलो, क्या आपने संदेश आउटपुट में सुझाए गए अनुसार डिस्टेंक करने की कोशिश की?
पैट्रिस टिसरेन्ड

1

यह बेहद मददगार था: http://archive09.linux.com/feature/121735

यह उदाहरण दिखाता है कि जब आप लक्ष्य-मूलिक दी गई लाइब्रेरी को खोजते हैं तो कैसे सफल होता है (क्रॉस बिल्डिंग कुछ अलग है यहां - उपयोग करें ।/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उस समस्या के आसपास काम करता है, लेकिन बिल्ड निर्भरता खोजने में मदद नहीं करता है
बेन Voigt
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.