Я пытаюсь сделать небольшого переводчика, используя Flex и Bison.
Теперь у меня есть два файла: parser.l
и parser.y
.Обычно основная функция помещается в файл parser.y
.Я хочу поместить основную функцию в другой файл main.cpp
, чтобы мой пакет выглядел аккуратно.
#include "y.tab.h"
int main()
{
yyparse();
return 0;
}
Но когда я скомпилировал, я получил ошибку:
undefined reference to `main'
Итак, я знаю, что что-то не так, чтобы включить y.tab.h
.
Не могли бы вы, кто-нибудь сказать мне, как это сделать?
Решение
Я просто понялout: добавьте следующее в файл main.c:
extern FILE *yyin;
extern FILE *yyout;
extern int yyparse(void);