Назад | Перейти на главную страницу

psybnc на nas: ncurses проблема

Пытаюсь скомпилировать psybnc на NAS. ipkg является здесь менеджером пакетов по умолчанию. Я уже установил ncurses, он находится в / opt / lib (libncurses.so)

[\w] # ls /opt/lib | grep ncurses
libncurses.so
libncurses.so.5
libncurses.so.5.7
libncursesw.so
libncursesw.so.5
libncursesw.so.5.7

[\w] # file libncurses.so.5.7
libncurses.so.5.7: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped

Я добавил этот путь в / etc / profile

[\w] # echo $PATH     
/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:/opt/lib

Итак, попытка сделать menuconfig дает мне эту ошибку

[\w] # make menuconfig
Initializing Menu-Configuration
[*] Running Conversion Tool for older psyBNC Data.
Using existent configuration File.
[*] Running Autoconfig.
System: Linux
Socket Libs: Internal.
Environment: Internal.
Time-Headers: in time.h and sys/time.h
Byte order: Big Endian.
IPv6-Support: Yes, general support. But no interface configured.
async-DNS-Support: Yes.
SSL-Support: No openssl found. Get openssl at www.openssl.org
Creating Makefile
[*] Creating Menu, please wait.
This needs the ncurses library. If it is not available, menuconf wont work. If you are using curses, use make menuconfig-curses instead.
make: *** [menuconfig] Error 1

То же самое и с make menuconfig-curses

[\w] # make menuconfig-curses 
Initializing Menu-Configuration using Curses
[*] Running Conversion Tool for older psyBNC Data.
Using existent configuration File.
[*] Running Autoconfig.
System: Linux
Socket Libs: Internal.
Environment: Internal.
Time-Headers: in time.h and sys/time.h
Byte order: Big Endian.
IPv6-Support: Yes, general support. But no interface configured.
async-DNS-Support: Yes.
SSL-Support: No openssl found. Get openssl at www.openssl.org
Creating Makefile
[*] Creating Menu, please wait.
This needs the curses library. If it is not available, menuconf wont work.
make: *** [menuconfig-curses] Error 1

Psybnc скомпилирован нормально, просто хочу работать с menuconfig вместо файла конфигурации.

С помощью моего ДРУГА я наконец знаю, что случилось.

Прежде всего, ncurses-dev необходимо установить на NAS, если вы хотите скомпилировать любой пакет, у которого есть зависимости, вам нужны заголовки этих зависимостей, а пакеты ncurses-dev имеют их.

так

ipkg install ncurses-dev

затем отредактируйте Makefile в исходном каталоге и добавьте CFLAGS следующим образом:

CCFLAGS = -I/opt/include -I/opt/include/ncurses

этот путь - путь к нужным вам файлам заголовков, поэтому инструменты autoconf не могут их найти. но вам нужно поместить cflags в gcc как параметр, потому что autotools ingnore переопределяет переменные ...

поэтому я просто открыл Makefile и добавил $ (CCFLAGS) как param, и все, теперь он работает !!

  $(CC) $(CCFLAGS) menuconf/menuconf.c menuconf/inputbox.c menuconf/util.c menuconf/checklist.c menuconf/menubox.c menuconf/textbox.c src/snprintf.c -I. -lncurses -lm -o menuconf/menuconf

Библиотека curses не установлена, поскольку вы не предоставили нам информацию, что это за NAS (модель / производитель), мы не можем вам помочь более подробно.

Если есть пакет curses для распространения на этом NAS от этого поставщика, вы можете установить его.

Или вы просто использовали бы конфигурацию и текстовый редактор.

Обновить

Если вы уверены, что правильно настроили библиотеки, вы можете попробовать установить LD_LIBRARY_PATH вручную, чтобы /opt/lib. Также взгляните на Makefile и сделайте соответствующую строку ($ CC) более подробной.