首页 > 其他 > 详细

gcc wiki翻译及学习

时间:2017-01-04 23:19:47      阅读:210      评论:0      收藏:0      [点我收藏+]

最近需要自己升级操作系统的gcc版本,故浏览一遍gcc的wiki,顺带翻译一遍,以供后来者享用

-------------------------------------------------------  我是愉快的分割线 ------------------------------------------

  • 为什么运行./configure和make会失败
  1. 如果在gcc源码目录进行configure和make,容易导致一些未知的问题。这一点在configuration page以及install document中都有描述
  2. 正确的做法是在gcc source code目录旁建立一个同级的gcc-build目录,然后在gcc-build目录中用绝对目录或相对路径运行configure,makefile将会在gcc-build目录中生成。

  以上步骤对于gnu标准的package来说不太常见,这是为了使gcc源码目录不受编译文件的干扰而采取的措施,使得源码包可以以后重用

  • configure或者make出现“configure:error: cannot compute suffix of object files:cannot compile”是什么原因呢?

  像绝大多数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。

  通常引起这类消息的原因是:

  1. gcc所依赖的第三方库没有找到,具体的说是MPFR, MPC, GMP三个包。如果已安装,查看库所在的链接是否包含在链接器的搜索路径中
  2. 编译器异常,这种情况应该极少会见到
  • 编译由于类似这样的错误“fatal error: gnu/stubs-32.h: No such file or directory"而失败了,是什么原因?

  默认情况下gcc会安装对于32位和64位的支持,但是在某些GNU/LINUX分发中没有对应的32位glibc头文件的支持。解决这个问题的方案是:1.安装32位glibc的相关包libc6-devlibc6-dev-i386glibc-devel.i686等或者去掉gcc对于32位的支持:--disable-multilib

 

gcc wiki翻译及学习

原文:http://www.cnblogs.com/derekxyw/p/6250472.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!