编译ncurses --disable-database 为什么“_nc_fallback”未定义

问题描述 投票:0回答:1
./configure --prefix=$TMUXTARGET --without-database --with-fallbacks=xterm-256color,vt100 --without-xterm-new --disable-home-terminfo --with-termlib --enable-termcap --disable-database

In [205]: !make V=1
cd man && make DESTDIR="" RPATH_LIST="/home/qgb/work/tmux-static/local/lib" all
make[1]: Entering directory '/home/qgb/work/tmux-static/ncurses-6.2/man'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/qgb/work/tmux-static/ncurses-6.2/man'
cd include && make DESTDIR="" RPATH_LIST="/home/qgb/work/tmux-static/local/lib" all
make[1]: Entering directory '/home/qgb/work/tmux-static/ncurses-6.2/include'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/qgb/work/tmux-static/ncurses-6.2/include'
cd ncurses && make DESTDIR="" RPATH_LIST="/home/qgb/work/tmux-static/local/lib" all
make[1]: Entering directory '/home/qgb/work/tmux-static/ncurses-6.2/ncurses'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/qgb/work/tmux-static/ncurses-6.2/ncurses'
cd progs && make DESTDIR="" RPATH_LIST="/home/qgb/work/tmux-static/local/lib" all
make[1]: Entering directory '/home/qgb/work/tmux-static/ncurses-6.2/progs'
gcc ../objects/infocmp.o ../objects/dump_entry.o -L../lib  -DHAVE_CONFIG_H -I../progs -I. -I../include -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG -O2 --param max-inline-insns-single=1200 -L../lib  -lncurses -ltinfo    -o infocmp
../lib/libtinfo.a(lib_setup.o): In function `_nc_setupterm':
lib_setup.c:(.text+0x924): undefined reference to `_nc_fallback'
collect2: error: ld returned 1 exit status
Makefile:284: recipe for target 'infocmp' failed
make[1]: *** [infocmp] Error 1
make[1]: Leaving directory '/home/qgb/work/tmux-static/ncurses-6.2/progs'
Makefile:118: recipe for target 'all' failed
make: *** [all] Error 2

如何在没有 terminfo 的情况下编译 ncurses

我想构建在 Android shell 上运行的静态应用程序,但没有 terminfo

正常构建 ncurses 会出错

can't find terminfo 

android c ncurses
1个回答
0
投票

问题中的示例不完整,因为它没有显示构建

ncurses/fallback.c
文件失败。例如,如果创建了一个空文件,则再次运行“make”将不起作用(即,空源文件产生空目标文件)。

--with-fallbacks
选项假设您有

  • infocmp 程序
  • terminfo 数据库

INSTALL
(在ncurses源代码中)
CONFIGURING FALLBACK ENTRIES
部分详细解释了这一点。如果您在不具备这两种功能的系统上构建 ncurses,并且想要使用后备功能,则必须执行以下操作:

  • 构建不带回退功能的 ncurses,将其安装到临时目录,并且
  • 重建 ncurses(包括重新配置),使用第一次构建中的 infocmp 和终端数据库来生成回退功能所需的源。
© www.soinside.com 2019 - 2024. All rights reserved.