Bonjour,
Je souhaite utiliser la librairie ncurse.h, pour détecter l'utilisation de certaine touche (fleche, CTRL-R...)
Depuis que j'ai implémenté cette librairie dans mon code ça compile plus, elle est vraiment bugger cette librairie
Hum dsl, je me reprend
Donc voici mon message d'erreur a la compil :
Mes fichiers sont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 cc -std=c99 -pedantic -Wall -Werror -D_GNU_SOURCE -I. -c -o cmd.o cmd.c cc shell.o arbre.o histo.o jobs.o cmd.o -o shell cmd.o(.text+0xa88): In function `saisie': : undefined reference to `initscr' cmd.o(.text+0xa93): In function `saisie': : undefined reference to `stdscr' cmd.o(.text+0xa98): In function `saisie': : undefined reference to `keypad' cmd.o(.text+0xae7): In function `saisie': : undefined reference to `endwin' collect2: ld returned 1 exit status make: *** [shell] Erreur 1
- shell.c mon prog principal
- cmd.c : c'est là que j'utilise curses.h
Voici mon cmd.c, pas complet rassurrez vous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 ... #include <ncurses.h> ... char * saisie(void){ char *cmd; int i=0; cmd=malloc(MAXCMD); initscr(); //fonction de la librairie ncurses keypad(stdscr,TRUE); // elle aussi printf("NewShellPower>"); while((cmd[i-1]!='\n') && (i<MAXCMD)) { cmd[i]=getchar(); i++; } cmd[i-1]='\0'; endwin(); // et elle aussi return cmd; }
Je pense que ça pourrais être un pb de lien puisque les messages d'erreur concerne les cmd.o donc voici mon Makefile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CC=cc CFLAGS=-std=c99 -pedantic -Wall -Werror -D_GNU_SOURCE -I. shell : shell.o arbre.o histo.o jobs.o cmd.o shell.o : arbre.h histo.h jobs.h cmd.h cmd.o : cmd.c cmd.h histo.o : histo.c histo.h jobs.o : jobs.c jobs.h
Je ne sais pas quoi faire de ce message d'erreur, ou est le pb ? dans le Makefile, dans mes appelle de fonction de la librairie ncurses ???
Merci de votre aide.
Partager