flex-lexer – 未定义参考到yywrap

前端之家收集整理的这篇文章主要介绍了flex-lexer – 未定义参考到yywrap前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的“语言”,我使用Flex(词法分析器),它是这样的: @H_301_2@/* Just like UNIX wc */ %{ int chars = 0; int words = 0; int lines = 0; %} %% [a-zA-Z]+ { words++; chars += strlen(yytext); } \n { chars++; lines++; } . { chars++; } %% int main() { yylex(); printf("%8d%8d%8d\n",lines,words,chars); }

我运行flex count.l,一切正常,没有错误或警告,然后当我尝试做一个cc lex.yy.c我得到这个错误

ubuntu@eeepc:~/Desktop$ cc lex.yy.c
/tmp/ccwwkhvq.o: In function yylex':
lex.yy.c:(.text+0x402): undefined reference to
yywrap’
/tmp/ccwwkhvq.o: In function input':
lex.yy.c:(.text+0xe25): undefined reference to
yywrap’
collect2: ld returned 1 exit status

哪里不对?

解决方法

扫描器在文件结束时调用函数,因此可以将其指向另一个文件并继续扫描其内容。如果你不需要这个,使用 @H_301_2@%option noyywrap

链接到-lfl以使用库fl中的默认yywrap()函数

猜你在找的Flex相关文章