Пытаюсь скомпилировать 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) более подробной.