繁体   English   中英

如何使用 c++ ncurses 修复打开终端错误

[英]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 一样,可以使用TERMINFOTERMINFO_DIRS环境修复 作为一个额外的复杂因素,MacOS 默认使用不区分大小写的文件系统,而 ncurses 为此使用不同的目录组织。 term(5)手册页提到:

少数终端描述在其名称中使用大写字符。 如果底层文件系统忽略大写和小写之间的差异,则 ncurses 表示用作(两个字符)十六进制形式的目录树的中间级别的终端名称的“第一个字符”。

像这样检查应用程序运行系统中terminfo文件夹的路径和应用程序中的相同路径,

例如:- setenv("TERMINFO","/usr/share/terminfo", 1);

它工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM