Ошибка кросс-компиляции gdserver => ошибка: библиотека termcap не найдена

У меня возникает досадная ошибка при попытке кросс-компиляции gdbserver для arm. Я скачал и скомпилировал termcap с помощью этой команды

export CC="/bin/arm-mv5sft-linux-gnueabi-gcc"
export CXX="/bin/arm-mv5sft-linux-gnueabi-g++"
export AR="/bin/arm-mv5sft-linux-gnueabi-ar"
CONFOPTS+="--target=arm-linux --host=arm-linux --build=i686-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --enable-static"
./configure ${CONFOPTS} 
make &&

make DESTDIR=~/gdb-7.6/toInst install

Поскольку такая кросс-компиляция прошла успешно, поскольку мне не было выдано никаких сообщений об ошибках, я получил libtermcap.a, который, как вы можете видеть ниже, находится в ~/termcap/

:$ file *.o
termcap.o: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
tparam.o:  ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
version.o: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not strippe

Однако, если я попытаюсь сделать то же самое для кросс-компиляции gdbserver для руки, с теми же параметрами и вызовом кросс-компилируемой библиотеки

export CC="/bin/arm-mv5sft-linux-gnueabi-gcc"
export CXX="/bin/arm-mv5sft-linux-gnueabi-g++"
export AR="/bin/arm-mv5sft-linux-gnueabi-ar"

CONFOPTS+="--target=arm-linux --host=arm-linux --build=i686-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --enable-static --with-termcap=~/termcap/libtermcap.a"
./configure ${CONFOPTS} $@
make &&

make DESTDIR=~/gdb-7.6/toInst install

я понимаю это

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 `~/gdb-7.6'
make: *** [all] Error 2

Я нашел несколько сайтов в Интернете, предлагающих установить библиотеку libncurses5-dev, но я уже установил ее!

$ sudo apt-get install libncurses5-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libncurses5-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 67 not upgraded.

ИТАК, я не знаю, что я могу сделать для кросс-компиляции gdbserver, пожалуйста, помогите!

Заранее спасибо!!

С уважением


person ndarkness    schedule 06.06.2013    source источник
comment
crosstool-ng имеет параметры для создания gdbserver при создании кросс-компилятора. Вы можете начать с одного из примеров конфигураций и настроить его. Скорее всего, вам придется указать gdb configure, где найти термины ARM, если вы хотите сделать это вручную, как здесь.   -  person artless noise    schedule 07.06.2013


Ответы (3)


Я нашел обходной путь для кросс-компиляции gbd, поскольку меня интересовала только кросс-компиляция gdbserver, я пошел в эту папку (gdb/gdebserver0 и, используя расположенную там конфигурацию, с моими параметрами кросс-компиляции, я не возникли проблемы, и теперь я получаю сервер gbd для руки.

Я надеюсь, что это может помочь другому с моей той же проблемой.

С уважением

person ndarkness    schedule 07.06.2013

Здесь я предлагаю автоматизированное решение для конфигурации: ошибка конфигурации, при компиляции crosstool-ng не найдена библиотека termcap. Он отлично работает в последней версии Fedora.

1.Download the termcap-1.3.1.tar.gz from the gnu site    
2.Uncompress the source File >tar -xvf termcap-1.3.1.tar.gz    
3.>cd termcap     4>./configure  /*Configure the Library*/    
5.>make    /*user  */    
6.>su    /* change to root */    
7.then > make install
person Samtel-Ramesh-Chandrakasan    schedule 10.05.2015
comment
Спасибо. В моем случае на загрузку, перекрестную сборку termcap и передачу его местоположения сценарию настройки GDB через LDFLAGS=-Lpath ушло менее 5 минут. - person Alex Che; 04.03.2019

У меня была такая же проблема на FC3, но даже установка libncurses-devel не помогла. Решением для меня была установка readline-devel

person Filipe    schedule 06.01.2014