麻烦构建gcc 4.6:未定义引用`yylex'

时间:2010-11-24 00:49:54

标签: gcc makefile bison

我正在尝试构建gcc 4.6,但是我遇到了一些链接器错误,看起来它意味着bison或flex没有被链接到。当makefile发出以下命令时:

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 个答案:

答案 0 :(得分:47)

同样的事情发生在我身上,原因是缺乏弹性和野牛。安装flex和bison后,我运行make distclean./configure,然后编译好了。

答案 1 :(得分:2)

它刚刚进入一些奇怪的状态,因为我做了./configure并试图在野牛和flex设置正确之前构建它。打电话给干净是不够的。我彻底消灭了整个事情并做了一个新的结账,现在建立得很好。

答案 2 :(得分:2)

同样适用于此,但对我来说,修复是安装bisonc ++,无论出于什么原因我只安装了bison。

相关问题