Сборка проблем gcc 4.6: неопределенная ссылка на yylex - PullRequest
31 голосов
/ 24 ноября 2010

Я пытаюсь собрать gcc 4.6, но я получаю некоторые ошибки компоновщика, которые выглядят так, как будто это означает, что bison или flex не связаны с. Когда make-файл выдает эту команду:

gcc   -g -fkeep-inline-functions -DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat -fno-common  -DHAVE_CONFIG_H -DGENERATOR_FILE  -o build/gengtype \
        build/gengtype.o build/errors.o build/gengtype-lex.o build/gengtype-parse.o build/version.o ../../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a

Это говорит мне:

/home/chris/code/gcc/trunk/host-x86_64-unknown-linux-gnu/gcc/../.././gcc/gengtype.c:960: undefined reference to `lexer_line'
... undefined reference to `yylex'
... undefined reference to `yybegin'
... undefined reference to `yyend'

Я установил Flex и Bison и даже попробовал несколько вариантов Bison с одинаковым результатом. Кто-нибудь знает, что еще это может значить?

Ответы [ 3 ]

47 голосов
/ 29 января 2011

То же самое случилось со мной, это было из-за отсутствия гибкости и бизона.После установки flex и bison я запустил make distclean и ./configure, затем все отлично скомпилировалось.

2 голосов
/ 31 декабря 2012

Я тоже столкнулся с этим, но исправление для меня заключалось в установке bisonc ++, по какой-то причине у меня был только установлен bison.

2 голосов
/ 24 ноября 2010

Это просто вошло в какое-то странное состояние с тех пор, как я это сделал ./configure и попытался построить его, прежде чем правильно настроить bison и flex.Называть make clean было недостаточно.Я уничтожил все это и сделал новую проверку, и теперь она работает нормально.

...