ncurses основной пример-в debug я получаю: "ошибка открытия терминала: неизвестно."
делая некоторые основные примеры на библиотеках ncurses, я получаю некоторые проблемы.
На самом деле, я не получаю то, что ожидаю (сообщение напечатано), и идя в отладку, из eclipse, я получаю (в области консоли) "ошибка открытия терминала: неизвестно."
следующий код:
#include <unistd.h>
#include <stdlib.h>
#include <ncurses.h>
int main() {
initscr();
move(5,15);
printw("%s", "Hello world!");
refresh();
endwin();
exit(EXIT_SUCCESS);
}
параметры компилятора, как указано в консоли Eclipse в команде "Build project":
make all
Building file: ../source/Curses_01.c
Invoking: GCC C Compiler
gcc -Incurses -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"source/Curses_01.d" -MT"source/Curses_01.d" -o"source/Curses_01.o" "../source/Curses_01.c"
Finished building: ../source/Curses_01.c
Building target: Curses_01
Invoking: GCC C Linker
gcc -o"Curses_01" ./source/Curses_01.o -lcurses
Finished building target: Curses_01
спасибо всем заранее!
1 ответов
вы печатаете строку. Проблема в том, что программа выходит немедленно. Это очистит экран и восстановит его в прежнем состоянии. Это происходит очень быстро, конечно, так что вы ничего не увидите.
решение состоит в том, чтобы дождаться нажатия клавиши перед выходом. Вы можете сделать это с помощью getch()
:
/* ... */
refresh();
getch();
endwin();
exit(EXIT_SUCCESS);
проблема Eclipse возникает из-за терминала, представленного Eclipse для приложения. NCurses не узнает его. Я не использую Eclipse, поэтому Я не знаю точно, как это сделать, но вы должны искать некоторые настройки, которые позволяют запускать приложение внутри полного терминала (например, в xterm, Konsole, Gnome Terminal и т. д.)