bonjour,
j'essais de compiler un parseur vhdl avec l'outil flex++ et bison++(je veux que le programme génère des fichier c++)
le problème c'est que en compilant (à l'edition de lien),le message d'erreur suivant est généré:
vhdl.tab.o(.text+0x481): In function `yyparse()':
/work/vhdl_parser3/vhdl.tab.c++:2195: undefined reference to `yylex()'
merci pour votre aide
# -l qqchose
Posté par Adrien BUSTANY (site web personnel) . Évalué à 1.
ajoute -llex ou -lflex à ta commande gcc. Là il ne trouve pas la libraire qui correspond à flex++. Si tu mets -llex par exemple, il cherche dans /usr/lib ou /usr/local/lib ou autre le fichier liblex
[^] # Re: -l qqchose
Posté par zribi safa . Évalué à 1.
merci pour ton aide
mais voilà le makefile que je l'utilise et même problème existe encore:
CC=gcc
CFLAGS= -g
LDFLAGS=-lfl -lm -lstdc++
YACC= bison
YFLAGS=-d -v -t
#YFLAGS=
LEX=flex
OBJS=vhdl.tab.o lex.yy.o main.o
all: fparse
fparse: $(OBJS)
$(CC) -o fparse $(CFLAGS) $(OBJS) $(LDFLAGS)
vhdl.tab.o: vhdl.tab.c++ vhdl.tab.h++
$(CC) -c $(CFLAGS) vhdl.tab.c++
vhdl.tab.c++ vhdl.tab.h++: vhdl.y++
$(YACC) $(YFLAGS) vhdl.y++ -o vhdl.tab.c++
lex.yy.o: lex.yy.cc vhdl.tab.h++
$(CC) -c $(CFLAGS) lex.yy.cc
lex.yy.cc: vhdl.lex
$(LEX) -+ vhdl.lex
main.o: main.c++
$(CC) -c $(CFLAGS) main.c++
clean:
rm -f $(OBJS) core y.* lex.yy.? fparse
y a t'il de problème dans ce fichier?
[^] # Re: -l qqchose
Posté par Adrien BUSTANY (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.