2012-11-02 14 views
6

robi kilka podstawowych przykładów na libreries ncurses, pojawia się kilka problemów.ncurses podstawowy przykład - w debugowaniu otrzymuję: "Błąd otwierania terminala: nieznany."

Właściwie, nie dostaję tego, czego się spodziewam (wiadomość wydrukowana), i idę w debugowanie, od zaćmienia, dostaję (w obszarze konsoli) "Błąd otwierania terminala: nieznany."

Follows Kod:

#include <unistd.h> 
#include <stdlib.h> 
#include <ncurses.h> 


int main() { 

    initscr(); 

    move(5,15); 
    printw("%s", "Hello world!"); 
    refresh(); 

    endwin(); 
    exit(EXIT_SUCCESS); 
} 

Opcje kompilatora, jak przewidziano w konsoli Eclipse na rozkaz "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 

Dzięki wszyscy w góry!

Odpowiedz

2

Dostajesz wydrukowany napis. Problem polega na tym, że program wychodzi natychmiast. Spowoduje to wyczyszczenie ekranu i przywrócenie go do poprzedniego stanu. Dzieje się to oczywiście bardzo szybko, więc nic nie widzisz.

Rozwiązaniem jest poczekanie na naciśnięcie klawisza przed wyjściem. Można to zrobić z getch():

/* ... */ 
refresh(); 
getch(); 
endwin(); 
exit(EXIT_SUCCESS); 

Eclipse Problem pojawia się ze względu na terminalu przedstawionego przez Eclipse do aplikacji. NCurses nie rozpoznaje tego. Nie używam Eclipse, więc nie wiem dokładnie, jak to zrobić, ale powinieneś poszukać jakiegoś ustawienia, które pozwala uruchomić aplikację wewnątrz pełnego terminala (jak w Xterm, Konsole, Gnome Terminal, itp.)

+0

Witaj Nikos, w rzeczywistości twoja sugestia ma rację! Jeśli uruchomię swoją aplikację poza zaćmieniem, działa. Bez przygnębienia() nie byłem w stanie tego zobaczyć, bo jesteś smutny. Ponadto chciałbym, aby działało w środowisku Eclipse, aby uzyskać narzędzie do debugowania. Jeszcze raz dziękuję za odpowiedź! –

+0

Może znajdziesz odpowiedź na użycie Eclipse z ncurses tutaj: http://stackoverflow.com/questions/3938291/debugging-ncurses-with-eclipse-cdt –

+0

naprawdę, jeszcze raz dziękuję! –