связывание программы lex, созданной с префиксом - PullRequest
0 голосов
/ 31 марта 2012

Мой Лекс файл 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 Ответ

2 голосов
/ 31 марта 2012

Если вы используете префикс, libfl не для вас. Вы должны предоставить свою собственную функцию main и собственную функцию <prefix>wrap (или сказать, что вам не нужна функция с %option noyywrap, см. Руководство по флексам).

...