Bonjour,
J'essaie d'écrire un fichier Makefile pour un mini-compilateur écrit en lex/yacc, le soucis est que j'utilise une structure dans le fichier yacc qui a cette tête la:
Et que le fichier Lex dans la compilation cri au scandale parce qu'il ne la connaît pas, je pensais pourtant avoir fait les choses dans l'ordre avec les dépendances, voilà le Makefile:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 typedef struct types{ char * chaine; int entier; double reel; }types; #define YYSTYPE types
Voila ce qui se passe aprés un Make:
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 LEX = lex YACC = yacc -d -v CC = gcc -g analyseur_c: tabvar.o lex.yy.c y.tab.c y.tab.h $(CC) -o analyseur tabvar.o lex.yy.c y.tab.c y.tab.h tabvar.o:tabvar.c tabvar.h y.tab.c y.tab.h: analyseur_c.y $(YACC) analyseur_c.y lex.yy.c: analyseur_c.l tabvar.h $(LEX) analyseur_c.l tabvar.h clean: rm -f *.o y.tab.* y.output lex.yy.*
Une idée d'où ça peut venir ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 make gcc -g -c -o tabvar.o tabvar.c lex analyseur_c.l tabvar.h yacc -d -v analyseur_c.y gcc -g -o analyseur tabvar.o lex.yy.c y.tab.c y.tab.h analyseur_c.l: In function 'yylex': analyseur_c.l:32: error: request for member 'chaine' in something not a structure or union analyseur_c.l:34: error: request for member 'reel' in something not a structure or union analyseur_c.l:35: error: request for member 'chaine' in something not a structure or union analyseur_c.l:36: error: request for member 'chaine' in something not a structure or union make: *** [analyseur_c] Error 1 Compilation exited abnormally with code 2 at Mon Apr 13 11:00:05
Je suis preneur de tout info ou critique de mon code, si vous en voulez plus n'hésitez pas à me le demander !
Je vous remercie d'avance !
Partager