当我尝试在 Linux 机器上打开对话框二进制文件时,出现以下错误:Error opening terminal: vt102
我为 ARM 交叉编译了对话框和 ncurses,编译顺利,但二进制打开给了我一个错误。给出错误的命令是:
$DIALOG --clear --backtitle "Accept EULA to proceed" --title "END USER LICENSE AGREEMENT" --no-mouse --no-lines --extra-button --ok-label 'Accept' --extra-label 'Decline' "$@" --textbox /vss/scripts/End-User-Product-License-Agmt.txt 0 0
答案1
该消息表示 ncurses 无法找到 的终端描述vt102
。这可能会发生,因为
- 终端数据库的默认编译路径名与安装终端数据库的位置不匹配,或者
- 您没有安装终端数据库。
这两个(可能)都很容易在交叉编译中完成。当您运行配置脚本时,它会在末尾打印重要的路径名,因为这些路径名都可以自定义。例如:
** Configuration summary for NCURSES 6.0 20170909:
extended funcs: yes
xterm terminfo: xterm-new
bin directory: /usr/bin
lib directory: /usr/lib
include directory: /usr/include/ncursesw6
man directory: /usr/share/man
terminfo directory: /usr/local/ncurses/share/terminfo
pkg-config directory: /usr/lib/x86_64-linux-gnu/pkgconfig
如果您在运行时不覆盖终端数据库的路径名(使用TERMINFO
和/或TERMINFO_DIRS
),它使用编译的路径名。
要安装终端数据库,您可以使用tic
,例如,
tic -x terminfo.src
或从另一台计算机复制带有终端数据库的目录树。
进一步阅读: