[英]ncurses on adb shell android
我正在尝试在 Android 上创建一个带有 ncurses 的简约命令行 gui。 我为 ARM64 等交叉编译了 ncurses,一切似乎都在运行。 然而; 在 adb shell 中启动我的测试“hello world”ncurses 程序时,出现以下错误:
Error opening terminal: xterm-256color.
当我尝试将 TERM 设置为 xterm 或我得到的东西时:
Error opening terminal: xterm.
有什么特别的方法我需要编译 ncurses 和/或配置 Android 以允许像这样的 CLI gui 运行?
您需要一个终端数据库来运行 curses 应用程序。 显然没有安装(尽管可能存在一个终端数据库,其位置与TERMINFO
或TERMINFO_DIRS
的编译默认值不对应)。
使用 ncurses,您可以配置和编译在终端数据库中找不到终端描述时使用的后备条目(在INSTALL
源文件中讨论):
为了在 terminfo 树可访问之前支持 ncurses 程序的操作(即,在单用户模式下或在 OS 安装时),可以编译 ncurses 库以包含一组预取的回退条目。
注意:这必须在安装了 ncurses 的 infocmp 和 terminfo 数据库(以及 ncurses 的 tic 和 infocmp 程序)的机器上完成。 这是因为在构建树的 infocmp 副本可用之前,会生成回退源并将其编译到库中。
仅当从 terminfo 树的常规提取和 termcap 回退(如果已配置)已尝试并失败时,setupterm() 才会检查这些条目。 因此,当该条目可访问时,回退的存在不会影响对相同类型的磁盘条目的修改。
所以诀窍是像这样配置ncurses:
./configure --without-database --with-fallbacks=xterm-256color,vt100 --without-xterm-new --disable-home-terminfo --with-termlib --enable-termcap --disable-database --host=arm-linux-gnue
这允许在不依赖库的情况下在内部使用后备
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.