./configure
+ make
+ make install
example.l
文件,其中包含:%{
int a = 0, b = 0;
%}
%%
\n ++a; ++b;
. ++b;
%%
int main()
{
yylex();
printf("%d - %d", a, b);
}
这是他们网站上的一个基本示例。计算文件中的行和字符。
flex example.l
。它生成了lex.yy.c
-
gcc lex.yy.c -o lexyy
:抛出体系结构x86_64的 undefined symbol -
gcc lex.yy.c -lfl
:ld:-lfl找不到库-
gcc lex.yy.c -ll
:生成a.out,但是当我对文件运行它时,它不起作用(打印“0-0”)。看来我无法编译该死的文件。它如何知道在哪里可以找到必要的库?链接不应该从这里(当前文件夹)开始吗?
我无法获得最简单的示例,这有点令人沮丧。
最佳答案
好的。因此,事实证明我缺少一个名为%option noyywrap
的参数,该参数位于此处:
%{
int a = 0, b = 0;
%}
%option noyywrap
%%
\n ++a; ++b;
. ++b;
...
显然,这告诉FLEX只有一个源文件。因此,这不是
gcc
问题,而是FLEX配置问题。谢谢大家花时间阅读问题。希望这对其他人有帮助。
关于c++ - FLEX无法生成lex.yy.c,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21223862/