2012-11-02 5 views
6

facendo alcuni esempi di base sulle librerie ncurses, ottengo alcuni problemi.esempio base ncurses: nel debug ricevo: "Errore nell'apertura del terminale: sconosciuto."

In realtà, non ottengo quello che mi aspetto (messaggio stampato), e andando in debug, da eclissi, ottengo (in area console) "Errore di apertura del terminale: sconosciuto."

Segue Codice:

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


int main() { 

    initscr(); 

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

    endwin(); 
    exit(EXIT_SUCCESS); 
} 

opzioni del compilatore, come previsto nella console Eclipse al comando "Crea progetto":

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 

Grazie a tutti in anticipo!

risposta

2

Si ottiene la stringa stampata. Il problema è che il programma esce immediatamente. Questo cancellerà lo schermo e lo ripristinerà al suo stato precedente. Questo accade molto velocemente, ovviamente, così non puoi vedere nulla.

La soluzione è attendere la pressione di un tasto prima di uscire. È possibile farlo con getch():

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

problema The Eclipse si pone a causa del terminale presentato da Eclipse per l'applicazione. NCurses non lo riconosce. Non utilizzo Eclipse, quindi non so esattamente come farlo, ma dovresti cercare qualche impostazione che ti permetta di eseguire l'applicazione all'interno di un terminale completo (come in xterm, Konsole, Gnome Terminal, ecc.)

+0

Ciao Nikos, in realtà, il tuo suggerimento è giusto! Se eseguo la mia app all'esterno di eclipse, funziona. Senza un getch() non ero in grado di vederlo, come tu triste. Inoltre, mi piacerebbe farlo funzionare all'interno di Eclipse per ottenere il debugging facility. Grazie ancora per la risposta! –

+0

Forse puoi trovare qualche risposta per l'utilizzo di Eclipse con ncurses qui: http://stackoverflow.com/questions/3938291/debugging-ncurses-with-eclipse-cdt –

+0

davvero, grazie ancora! –

Problemi correlati