本文介绍了无法编译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:

Also:

这篇关于无法编译lex的输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 13:32