我尝试在 Ubuntu 16.04 的终端上运行一款使用 c ncurses 库制作的游戏。游戏完成时,它在终端中按预期运行。然后我对文件(可能是 .bashrc)进行了一些更改,这样我就可以为我的游戏使用 256 色调色板。
现在,当我尝试运行游戏时收到以下错误消息:
打开终端时出错:xterm-256color。
TERM
变量设置为xterm-256color
并且tput颜色输出为256。有没有更合适的方法来测试我的终端是否确定使用256种颜色,以及如何解决上面描述的问题?
答案1
目前还没有 100% 可靠的方法来确定终端支持给定颜色数量。您TERM
可以设置告诉应用程序使用特定的终端描述,以便 ncurses 和其他库知道如何使用终端。
该描述xterm-256color
是ncurses-base
基本的包裹:
$ dlocate /lib/terminfo/x/xterm-256color
ncurses-base: /lib/terminfo/x/xterm-256color
如果您的应用程序无法打开它,那很可能是因为您设置了一个环境变量(例如TERMINFO
),它告诉 ncurses 在该描述不存在的地方进行查找。
您可以使用它strace
来查看应用程序打开了哪些文件,并且(通常)查看此类问题,例如,通过查找“xterm-256color”的打开失败。
进一步阅读:
- 术语信息,ncurses 手册页中的环境变量