最近需要自己升级操作系统的gcc版本,故浏览一遍gcc的wiki,顺带翻译一遍,以供后来者享用
------------------------------------------------------- 我是愉快的分割线 ------------------------------------------
以上步骤对于gnu标准的package来说不太常见,这是为了使gcc源码目录不受编译文件的干扰而采取的措施,使得源码包可以以后重用
像绝大多数gnu projects中的工具一样,gcc使用gnu autotools来对编译进行配置,configure脚本使用某种小程序,通常是conftest.c来测试系统是否对某些函数或者特性有支持。如果该测试fail,一般会输出这样的消息:
1 checking for suffix of object files... configure: error: in `/home/manu/gcc/gcc/i686-pc-linux-gnu/libgcc‘: 2 configure: error: cannot compute suffix of object files: cannot compile 3 See `config.log‘ for more details. 4 make[2]: *** [configure-stage1-target-libgcc] Error 1 5 make[2]: Leaving directory `/home/manu/gcc/gcc‘
这样的消息通常比较具有误导性,通常需要去check出错目录下的config.log文件,在这个例子中,需要check下/home/manu/gcc/gcc/i686-pc-linux-gnu/libgcc路径下的config.log文件。error消息通常有多条,有些并不是很关键,通常做法是搜索最后的error message。
通常引起这类消息的原因是:
默认情况下gcc会安装对于32位和64位的支持,但是在某些GNU/LINUX分发中没有对应的32位glibc头文件的支持。解决这个问题的方案是:1.安装32位glibc的相关包libc6-dev, libc6-dev-i386, glibc-devel.i686等或者去掉gcc对于32位的支持:--disable-multilib
原文:http://www.cnblogs.com/derekxyw/p/6250472.html