我正在尝试设置一个使用flex的项目(快速lex,而不是adobe one)。我在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,我通过代码:: blocks编辑器使用gcc编译器。
如果我直接通过终端编译主文件。我明白了。
未定义对`yyFlexLexer :: yywrap()'
的引用
答案 0 :(得分:2)
flex file.ll
g++ -c lex.yy.cc
g++ -o main main.cpp lex.yy.o