flex: undefined reference to `yywrap " seulement lors de la compilation et de raccordement séparément
J'ai appris à utiliser Flex (de l'analyseur lexical) et j'ai été la compilation avec la commande suivante:
gcc -lfl -o test lex.yy.c
et tout est bien. Cependant, je veux le lien avec d'autres fichiers, j'ai donc compiler et lier séparément avec
gcc -c lex.yy.c
suivie par
gcc -lfl -o test lex.yy.o
mais gcc me dit qu'il y est une référence non définie à yywrap()
. Donc, ce qui se passe ici?
Je suis à l'aide de Flex 2.5.35, gcc 4.7.2 et ld 2.22
avez-vous essayez d'ajouter
Qui ont travaillé. Merci!
bon, je vais poster ça comme réponse.
-lfl
à la fin au lieu de commencer?Qui ont travaillé. Merci!
bon, je vais poster ça comme réponse.
OriginalL'auteur Flukiluke | 2012-12-26
Vous devez vous connecter pour publier un commentaire.
ajouter
-lfl
à la fin plutôt qu'au début.OriginalL'auteur Raj
Alternativement, si vous ne voulez pas utiliser la bibliothèque, il suffit de
#define yywrap()
1 dans votre .l fichier, ou de fournir uneyywrap()
méthode qui retourne 1.Il est documenté.
OriginalL'auteur user207421
Ma solution a été:
sudo apt-get install flex
OriginalL'auteur Hugo
Utilisation
gcc lex.yy.c -ll
. Sinon, il donnera une référence non définie àyywrap
.OriginalL'auteur kartik7153
J'ai créé un fichier addon.c
et de l'ajouter à la cible.
OriginalL'auteur Th. Thielemann