编译gcc-无法从flex中找到输出;放弃

编译gcc-无法从flex中找到输出;放弃,gcc,flex-lexer,configure,Gcc,Flex Lexer,Configure,我试图在Debian(6或7)上编译gcc-4.9RC或gcc-4.8.2 安装了flex 2.5.35,我甚至编译了自己的flex2.5.39 我确认它从一个简单的.l文件生成一个yy.c输出 另外,我在gcc文档中了解到,从发行版(gcc-4.8.2就是这样)编译时,不需要flex 尽管如此,在运行make之后,我总是在一些内部configure中得到这一点: checking for bison... bison -y checking for flex... flex checking

我试图在Debian(6或7)上编译
gcc-4.9RC
gcc-4.8.2

安装了
flex 2.5.35
,我甚至编译了自己的flex
2.5.39

我确认它从一个简单的
.l
文件生成一个
yy.c
输出

另外,我在gcc文档中了解到,从发行版(gcc-4.8.2就是这样)编译时,不需要flex

尽管如此,在运行
make
之后,我总是在一些内部
configure
中得到这一点:

checking for bison... bison -y
checking for flex... flex
checking lex output file root... configure: error: cannot find output from flex; giving up
make[2]: *** [configure-stage1-gmp] Error 1
make[2]: Leaving directory `***/gcc-bin-8'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `***/gcc-bin-8'
make: *** [all] Error 2
它配置有:

../gcc-4.8.2/configure --enable-languages=c,c++,fortran --with-cloog --prefix=/home/***/gcc-4.8.2

我不知道我应该多尝试些什么。

这个错误是在构建gmp(gcc的先决条件)时产生的。这是gmp中的一个已知缺陷,出现在4.8.3中。如果您运行contrib/download_先决条件,默认情况下您将获得gmp 4.8.3。解决方法是编辑gmp-4.8.3/configure.in和gmp-4.8.3/configure和change

M4=M4不需要

为了


M4=M4

既然当前版本的GMP是6.0.0a,我就想知道为什么OP会使用如此古老的GMP版本。我在Mac OS X 10.9.4和Ubuntu14.04可靠的Tahr派生版本上愉快地构建了GCC 4.9.1,使用的是GMP 6.0.0a(以及MPC 1.0.2、MPFR 3.1.2、ISL 0.12.2和Cloog 0.18.1),我在构建其他所有东西的同时构建了GCC。OP没有说明他使用的是哪一个版本的GMP。显然,库中有一片混乱,因为我的主目录中有一些(新的),主系统中有一些(旧的)。我仍然没有在那里成功编译新的GCC,但我现在使用Intel编译器,直到管理员为我构建了最新的东西。顺便说一句,我经常在自己的计算机上从源代码编译GCC,我从来没有遇到过这样的问题。