nas上的psybnc:ncurses问题

尝试在NAS上进行编译psybnc。 ipkg是这里的默认包pipe理器。 我已经安装了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 

我将这个path添加到/ 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而不是configuration文件。

在我的朋友的帮助下,我终于知道发生了什么事情。

首先,如果你想编译任何有依赖关系的软件包,需要在NAS上安装ncurses-dev,你需要这些依赖关系的头文件,而ncurses-dev软件包包含它们

所以

 ipkg install ncurses-dev 

然后去编辑你的源代码目录中的Makefile并添加CFLAGS,如下所示:

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

这个path是你需要的头文件的path,这就是autoconf工具找不到它们的原因。 但你需要把cflags作为参数,因为autotools ingnores覆盖variables…

所以我只是打开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 

诅咒库没有安装,因为你没有提供给我们什么样的NAS(模型/供应商)这是我们不能帮助你更详细的信息。

如果该供应商的NAS上有一个分发包,你可以安装它。

或者你只是使用configuration和文本编辑器。

更新

如果您确定已正确设置库,则可以尝试将LD_LIBRARY_PATH手动设置为/opt/lib 。 也看看Makefile ,并使相应的($ CC)行更加详细。