如何修复用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(;

它起作用了。

相关内容

  • 没有找到相关文章

最新更新