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

Linux 使用flex生成的文件时出现问题,linux,compiler-errors,flex-lexer,Linux,Compiler Errors,Flex Lexer,我正在尝试设置一个使用flex(FastLex,而不是adobe)的项目。我在Ubuntu上运行,通过apt-get方法安装了flex 我在谷歌上搜索了编译错误,我发现有人只是在它周围创建了自己的补丁,或者有很多论坛,人们问了,没有人回答 这是我的.ll文件 %option c++ %% %% 它生成一个lex.yy.cc文件,我将其包含在主文件中 #include "lex.yy.cc" int main () { return 0; } 我得到的错误是很多像这样的“多重定义

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

我在谷歌上搜索了编译错误,我发现有人只是在它周围创建了自己的补丁,或者有很多论坛,人们问了,没有人回答

这是我的.ll文件

%option c++

%%

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

#include "lex.yy.cc"

int main ()
{
    return 0;
}
我得到的错误是很多像这样的“多重定义”错误

lex.yy.cc | 511 | `yyFlexLexer::yylex()的多重定义|

我被卡住了,flex版本是2.5.35,我正在通过code::blocks编辑器使用gcc编译器

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

对“yyFlexLexer::yywrap()的未定义引用”


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

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