Trouble building gcc 4.6: undefined reference to `yylex'

Chris picture Chris · Nov 24, 2010 · Viewed 11.2k times · Source

I'm trying to build gcc 4.6, but I'm getting some linker errors that look like it means bison or flex isn't getting linked to. When the makefile issues this command:

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

It tells me:

/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'

I've installed Flex and Bison, and even tried several Bison variants with the same result. Does anybody know what else this might mean?

Answer

Ricbit picture Ricbit · Jan 29, 2011

Same happened to me, it was due to lack of flex and bison. After installing flex and bison, I ran make distclean and ./configure, then it compiled fine.