Я хочу написать компилятор Mini C как домашнее задание, используя Flex и Bison.Я извлек y.tab.c & y.tab.h из файла yy , который я написал, с помощью этой команды:
bison -d y.y
Затем я извлек lex.yy.c из моего bas.l файла следующим образом:
flex bas.l
Эти шаги были успешными, но когда я хочу объединитьэти два, чтобы получить файл .exe с помощью этой команды:
gcc lex.yy.c y.tab.c -obas.exe
Я получаю это предупреждение, и нет файла .exe:
bas.l:66:2: warning: no newline at end of file
gcc: Internal error: Aborted (program collect2)
Please submit a full bug report.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
Я знаю bas.l файл должен заканчиваться новой строкой, чтобы быть скомпилированным с C, и там фактически есть новая строка (я также изменил EOL с auto на \ n в моем редакторе vscode).Я не знаю, откуда пришло предупреждение.
Windows 10
flex версия 2.5.4
бизон версия 2.4.1
gcc версия 3.40,2