本文介绍了无法编译lex的输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我尝试编译这个普通的lex程序的输出时:
#lex.l
integer printf (found keyword INT);
使用:
$ gcc lex.yy.c
我得到:
未定义的符号:
_yywrap,引用自:
ccMsRtp7.o中的_yylex
ccMsRtp7.o中的输入
_main,引用自:
开始于crt1.10.6.o
ld:找不到符号
collect2:ld返回1退出状态
lex --version告诉我我实际上使用'flex 2.5.35',尽管ls -fla`which lex` isn符号链接。任何想法为什么输出不会编译?
解决方案
从:
When I attempt to compile the output of this trivial lex program:
# lex.l
integer printf("found keyword INT");
using:
$ gcc lex.yy.c
I get:
Undefined symbols:
"_yywrap", referenced from:
_yylex in ccMsRtp7.o
_input in ccMsRtp7.o
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
lex --version tells me I'm actually using 'flex 2.5.35' although ls -fla `which lex` isn't a symlink. Any ideas why the output won't compile?
解决方案
From the Flex manual:
这篇关于无法编译lex的输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!