2012-03-31 3 views
0

My Lex main.l Datei:Verknüpfung lex Programm, mit dem Präfix erstellt

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

erstellen Befehl main.c Datei:

> flex -Palone -omain.c main.l 

Dann versuchen Sie es zu kompilieren:

> gcc main.c -o main -lfl 

und bekam die folgende Fehler:

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

Wie kompiliere ich das Lex-Programm, das mit dem Präfix erstellt wurde?

Antwort

2

Wenn Sie Präfix verwenden, ist Libfl nicht für Sie. Sie müssen Ihre eigene main Funktion und Ihre eigene <prefix>wrap Funktion zur Verfügung stellen (oder sagen, dass Sie keine mit %option noyywrap wünschen, sehen Sie flexi Handbuch).

+0

Und natürlich kann deine Hauptfunktion nicht etwas rufen, das 'yylex' genannt wird, da du das Präfix' yy' geändert hast! – Kaz

Verwandte Themen