Как исправить ошибку открытия терминала с помощью c ++ ncurses - PullRequest
0 голосов
/ 24 ноября 2018

Я использую CLion 2018.2.6 на MacOS.Я пытаюсь использовать ncurses, но получаю сообщение об ошибке «Ошибка открытия терминала: неизвестно».Я не уверен, как это исправить.Любая помощь приветствуется.Код ниже.

#include <iostream> 
#include <ncurses.h>
using namespace std;
int main(){
     initscr();
     clear();
     printw("Seems legit!");
     refresh();
     getch();
     endwin();
}

1 Ответ

0 голосов
/ 24 ноября 2018

Страница справочника initscr упоминает это:

Unset TERM Variable

Если переменная TERM отсутствует или пустаinitscr использует значение «неизвестно» , которое обычно соответствует входу терминала с общей (gn) возможностью.Общие записи обнаруживаются программой установки (см. Curs_terminfo (3x)) и не могут использоваться для полноэкранного режима.Другие реализации могут обрабатывать отсутствующую / пустую переменную TERM по-разному.

Кроме того, в зависимости от конфигурации вашей системы ncurses может даже не найти базу данных терминала, например, если она установлена ​​в другом местечем скомпилированное местоположение по умолчанию.Как и TERM, это можно исправить с помощью сред TERMINFO или TERMINFO_DIRS .В качестве дополнительного усложнения MacOS по умолчанию использует файловые системы без учета регистра, а ncurses использует для этого другую организацию каталогов.Страница справочника term(5) упоминает, что:

Небольшое количество описаний терминалов использует заглавные буквы в своих именах.Если базовая файловая система игнорирует разницу между прописными и строчными буквами, ncurses представляет «первый символ» имени терминала, используемый в качестве промежуточного уровня дерева каталогов в (двухсимвольной) шестнадцатеричной форме.

...