gpt4 book ai didi

linux - 使用 flex 生成的文件时出现问题

转载 作者:太空狗 更新时间:2023-10-29 12:21:15 25 4
gpt4 key购买 nike

我正在尝试设置一个使用 flex(快速 lex,而不是 adobe 的)的项目。我在 Ubuntu 上运行,我通过 apt-get 方法安装了 flex。

我用谷歌搜索了编译错误,我要么找到了围绕它创建自己的补丁程序的人,要么找到了很多人们提问但没有人回答的论坛。

这是我的 .ll 文件

%option c++

%%

%%

它生成一个 lex.yy.cc 文件,我将其包含在我的主文件中。

#include "lex.yy.cc"

int main ()
{
return 0;
}

我得到的错误是很多像这样的“多重定义”错误。

lex.yy.cc | 511 | multiple definition of `yyFlexLexer::yylex() ' |

我很困惑,flex 版本是 2.5.35,我正在通过 code::blocks 编辑器使用 gcc 编译器。

如果我直接通过终端编译主文件。我明白了。

undefined reference to `yyFlexLexer::yywrap()'

最佳答案

发现问题了!您不应包含生成的文件,而应编译它并将其作为目标文件包含。

flex file.ll 
g++ -c lex.yy.cc
g++ -o main main.cpp lex.yy.o

关于linux - 使用 flex 生成的文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7285818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com