[英]How do I fix opening terminal error with c++ ncurses
我在 MacOS 上使用 CLion 2018.2.6。 我正在尝试使用 ncurses,但收到错误“打开终端时出错:未知”。 我不知道如何解决这个问题。 任何帮助表示赞赏。 代码如下。
#include <iostream>
#include <ncurses.h>
using namespace std;
int main(){
initscr();
clear();
printw("Seems legit!");
refresh();
getch();
endwin();
}
initscr
手册页提到了这一点:
取消设置 TERM 变量
如果 TERM 变量缺失或为空,则 initscr 使用值"unknown" ,它通常对应于具有通用 (gn) 功能的终端条目。 通用条目由 setupterm 检测(请参阅 curs_terminfo(3x))并且不能用于全屏操作。 其他实现可能会以不同的方式处理缺失/空的 TERM 变量。
此外,根据系统的配置方式,ncurses 甚至可能找不到终端数据库,例如,如果它安装在与编译入的默认位置不同的位置。 与 TERM 一样,可以使用TERMINFO或TERMINFO_DIRS环境修复。 作为一个额外的复杂因素,MacOS 默认使用不区分大小写的文件系统,而 ncurses 为此使用不同的目录组织。 term(5)
手册页提到:
少数终端描述在其名称中使用大写字符。 如果底层文件系统忽略大写和小写之间的差异,则 ncurses 表示用作(两个字符)十六进制形式的目录树的中间级别的终端名称的“第一个字符”。
像这样检查应用程序运行系统中terminfo文件夹的路径和应用程序中的相同路径,
例如:- setenv("TERMINFO","/usr/share/terminfo", 1);
它工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.