链接lex程序,用前缀创建

时间:2012-03-31 12:51:17

标签: gcc lex

我的Lex文件main.l

%{
    #include <stdio.h>
%}
%%
start               printf("Start command received\n");
stop                printf("Stop command received\n");
%%

创建main.c文件命令:

> flex -Palone -omain.c main.l

然后尝试编译它:

> gcc main.c -o main -lfl

并出现以下错误:

  "_alonewrap", referenced from:
      _alonelex in ccdqmJjR.o
      _input in ccdqmJjR.o
  "_yylex", referenced from:
      _main in libfl.a(libmain.o)

如何编译使用前缀?

创建的lex程序

1 个答案:

答案 0 :(得分:2)

如果你使用前缀,libfl不适合你。您必须提供自己的main功能和自己的<prefix>wrap功能(或者说您不希望使用%option noyywrap功能,请参阅flex手册。)