C:\Users\master\AppData\Local\Temp\cc8RElKJ.o:lex.yy.c:(.text+0x414): undefined reference to `yywrap'
时间: 2023-09-06 13:12:02 浏览: 148
bianyiyuanli.rar_Pascal编译c_lex.h lex.l
这个错误是因为在编译时缺少 `yywrap` 函数的定义。这个函数的作用是告诉词法分析器在输入结束时该返回什么值。在新版的 Flex 中,`yywrap` 已经被废弃,取而代之的是 `yyin` 变量的值。如果你的 Flex 版本比较老,可以定义一个简单的 `yywrap` 函数来解决这个问题:
```c
int yywrap() {
return 1;
}
```
如果你使用的是新版的 Flex,可以在编译时加上 `-DYY_NO_UNISTD_H` 选项来禁用 `yywrap`:
```shell
$ flex -o lex.yy.c --header-file=lex.yy.h -DYY_NO_UNISTD_H file.l
$ gcc -o output lex.yy.c -lfl -DYY_NO_UNISTD_H
```
这样就可以成功编译了。
阅读全文