2012-03-31 53 views
0

我萊克斯文件main.l鏈接lex程序,前綴創建

%{ 
    #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程序?

回答

2

如果您使用前綴,libfl不適合您。您必須提供自己的main功能和您自己的<prefix>wrap功能(或者說您不想用%option noyywrap,參見flex手冊)。

+0

顯然你的主函數不能調用叫做'yylex'的東西,因爲你已經改變了'yy'前綴! – Kaz 2012-04-01 04:31:01