Flex和G ++的链接器错误?
|
当我尝试使用
g++
编译生成的扫描器时,遇到了flex
链接器错误。如果我给flex
以下(非常简单)的脚本:
%%
. ECHO;
然后运行flex
flex++ scanner.l
然后尝试将生成的代码编译为
g++ lex.yy.cc -ll
我收到以下错误:
/tmp/ccD5WdY3.o:(.rodata._ZTV11yyFlexLexer[vtable for yyFlexLexer]+0x28): undefined reference to `yyFlexLexer::yywrap()\'
/usr/lib/libl.a(libmain.o): In function `main\':
/build/buildd/flex-2.5.35/libmain.c:30: undefined reference to `yylex\'
collect2: ld returned 1 exit status
我不确定为什么会这样。我是否用-ll
链接到错误的库?如果是这样,我应该怎么做才能解决此问题?
没有找到相关结果
已邀请:
1 个回复
好按紊叉
是不必要的。 ѭ10可能包含如下代码:
但是,由
生成的扫描仪代码不包含独立的 功能
。 因此,如果扫描仪与上述
链接,则找不到linked13ѭ。 由
生成扫描仪时,该扫描仪需要专用的
而不是与
链接,最简单的
如下所示:
至于C ++扫描器的用法, 这部分 Flex文档将有所帮助。 话虽如此,正如文件所述: 扫描类的当前形式 是实验性的,可能会改变 主要版本之间有相当大的差异 我不建议您积极使用C ++扫描仪。