Προς το περιεχόμενο
  • 0
AMIOX?

Βιβλιοθήκη NCurses σε Windows.

Ερώτηση

Γεια σας

 

 

 

Θέλω να χρησιμοποιησω την NCurses σε προγράμματα C++ στα windows.π.χ. να εκτελέσω το παρακάτω απο το Code blocks ή κατευθείαν στο cmd.

 

>
#include <ncurses.h>

int main(int argc, char **argv)
{
int X = 10;
int Y = 10;
int ch;
initscr();
noecho();
keypad(stdscr,TRUE);
move(Y, X);
printw("M");
refresh();
do
{
ch = getch();
move(Y, X);
printw(" ");
switch(ch)
{
case KEY_UP: Y--; break;
case KEY_DOWN: Y++; break;
case KEY_LEFT: X--; break;
case KEY_RIGHT: X++; break;
}
move(Y, X);
printw("M");
refresh();
}
while (ch!=27);
endwin();
return 0;
}

 

Τα error είναι:

 

 

.cpp|1|error: ncurses.h: No such file or directory|

.cpp||In function 'int main(int, char**)':|

.cpp|8|error: 'initscr' was not declared in this scope|

.cpp|9|error: 'noecho' was not declared in this scope|

.cpp|10|error: 'stdscr' was not declared in this scope|

.cpp|10|error: 'TRUE' was not declared in this scope|

.cpp|10|error: 'keypad' was not declared in this scope|

.cpp|11|error: 'move' was not declared in this scope|

.cpp|12|error: 'printw' was not declared in this scope|

.cpp|13|error: 'refresh' was not declared in this scope|

.cpp|16|error: 'getch' was not declared in this scope|

.cpp|21|error: 'KEY_UP' was not declared in this scope|

.cpp|22|error: 'KEY_DOWN' was not declared in this scope|

.cpp|23|error: 'KEY_LEFT' was not declared in this scope|

.cpp|24|error: 'KEY_RIGHT' was not declared in this scope|

.cpp|31|error: 'endwin' was not declared in this scope|

||=== Build finished: 15 errors, 0 warnings ===|

 

 

δεν βρίσκει την NCurses δηλαδή.

 

Παρακαλω οτι ξέρετε για αυτην την βιβλιοθηκη θα βοηθήσει.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

8 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

  • 0

Κατέβασε την PDCurses: http://pdcurses.sourceforge.net/

που είναι συμβατή σε πολύ μεγάλο ποσοστό με την ncurses (και την curses).

 

Κατόπιν άλλαξε τα pre-processor directives σου, σε...

 

>
#include <curses.h> // αντί για <ncurses.h>

 

με την προϋπόθεση πως την έχεις βάλει στους default φακέλους του mingw (το Code::Blocks έρχεται με σετταρισμένο το mingw gcc toolchain, έχει ξεχωριστό download): http://comptb.cects....curses-to-mingw

 

(το πακέτο της PDCurses περιέχει pre-compiled mingw binaries)

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Δημοσ. (επεξεργασμένο)

δοκίμασε cygwin

 

Δεν νομίζω πως είναι καλή ιδέα να στήσει ολόκληρο Posix layer πάνω στο Win32 APi (και με ασύμβατα μάλιστα εκτελέσιμα έξω από το Cygwin) όταν το μόνο που θέλει (ρώτησε) είναι πως να τρέξει ncurses στα Windows.

 

 

 

Μου κάνει κάτι σαν να ζητάει κάποιος ας πούμε λεβγιέ ταχυτήτων από τριαξονική νταλίκα και να του προτείνεις να αγοράσει τριαξονική νταλίκα :lol:

 

 

Επεξ/σία από migf1

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Δεν νομίζω πως είναι καλή ιδέα να στήσει ολόκληρο Posix layer πάνω στο Win32 APi (και με ασύμβατα μάλιστα εκτελέσιμα έξω από το Cygwin) όταν το μόνο που θέλει (ρώτησε) είναι πως να τρέξει ncurses στα Windows.

 

 

Μου κάνει κάτι σαν να ζητάει κάποιος ας πούμε λεβγιέ ταχυτήτων από τριαξονική νταλίκα και να του προτείνεις να αγοράσει τριαξονική νταλίκα :lol:

 

 

εντάξει , το 'πα επειδη ανέφερε `κατευθείαν στο cmd` , και για να ξέρει οτι υπάρχει ...

 

στα σίγουρα δεν το συστήνω σε κάποιον που θέλει να γράψει Native Windows κώδικα αλλά εγω αυτό χρησιμοποιώ ,

 

σ'αυτό κάνω compile και όλα .... αλλά δεν με νοιάζουν και τόσο τα windows --αναγκαίο κακό ...

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Άλλος ένας χρόνιος χρήστης του Cygwin εδώ, από την εποχή των beta 17, 18 κτλ.

 

Το μόνο ουσιαστικό overhead είναι ότι πρέπει μαζί με τα εκτελέσιμά σου να διαθέτεις και το cygwin1.dll. Δεν είναι κάτι τραγικό.

 

Φυσικά για native compilation, προτείνεται mingw/msys.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Κι εγώ το 'χω ρε παιδιά το Cygwin, όπως και το mingw, καθώς επίσης και κανονικό Ubuntu σε ένα παλιό laptop.

 

Αυτό όμως δεν σημαίνει πως όταν με ρωτάνε για ncurses στα Windows πρέπει να τους λέω να εγκαταστήσουν το Cygwin. Αν ήταν έτσι, γιατί ας πούμε δεν του προτείνετε να εγκαταστήσει κανονικό Linux σε VM? Πολύ καλύτερο από το Cygwin :P

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Το προβλημα ειναι πως τα windose δεν υποστηριζουν τα διαφορα escape code για τα χρωματα και πρεπει να πας μεσω windose api για να βαλεις χρωμα κτλ στη console.Υπάρχει μια βιβλιοθηκη που δουλευε και στα δυο αλλα δε τη θυμαμαι.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Δεν υφίσταται πρόβλημα με τα χρώματα. Η PDCurses είναι cross-platform.

 

ΥΓ. Αποκλειστικά για χρώματα, έχω φτιάξει κι εγώ ένα cross-platform mini-interface, αποκλειστικά γραμμένο στον C/C++ pre-processor: http://www.insomnia....erminal-output/

 

Δίνω το νήμα του φόρουμ, αντί για το site μου, γιατί στο νήμα έχω μεταγενέστερη έκδοση (1.04, με πολύ περισσότερα πράγματα)... με την ελπίδα πως κάποιος/κάποιοι θα την κάνουν λίγο beta-testing για εντοπισμό bugs... και μετά αν είναι, θα ενημερώσω και το site (τώρα έχει παλαιότερη έκδοση: 1.03).

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε έναν λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι εύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
×
×
  • Δημιουργία νέου...

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.