GCC使用心得

全文参考博客文章:http://blog.csdn.net/sonicling/article/details/6702031

  GCC是GNU Compiler Collection的简称,作为Linux下最重要的一个编译器,其使用所有人都很熟悉。这里主要对GCC的运作机制进行一些简短的总结。

  这里使用的是老版本的GCC源代码,所以所有的实现都是基于C语言进行的,在后边的GCC版本(支持C++11)中,使用C++重写了很多代码,不在这里分析。

  从我们使用的角度说,GCC是一个编译器和链接器的集合,GCC是一个编译驱动器,驱动cc1,as和ld三个部件来完成编译、链接和汇编的工作。cc1将C语言源代码便以为汇编文件.s,而将汇编代码转换为二进制指令的工作由AS完成,生成大家都很熟悉的对象文件.o。生成的这些对象文件再由AR程序打包成静态库.a(这一步不一定有,又很多时候,我们并不需要将程序打包成静态库)。而LD是所谓的链接器。AS,AR,LD是属于另外一个Linux的程序包,叫做binutils的程序包的程序。

  要使用某个版本的gcc编译器,首先需要安装binutils组件,如果系统的binutils没有安装的话,需要首先安装。其次,需要检查自己所需要的gcc版本的依赖库。gcc主要依赖gmp、mpfr、mpc这三个库,如果你的系统没有这三个库,或者库太老,不足以支持新的gcc版本,那么,你需要首先安装这三个库。

  一般来说,下载GCC是从GNU的FTP镜像网站去下载,gcc的代码包一般放置在/release/gcc-x.y目录下,而那三个依赖库一般放置在/infrastructure/目录下。

  gcc的安装过程与其他软件没有太多区别,一般来说需要注意的是gcc的configure选项,这里的configure最好配置一下,不然编译时间会特别长。

configure --prefix=/usr/local/gcc-4.5.2 --enable-languages=c,c++

然后建立一个到 /usr/local/bin/gcc的软链接就可以。

posted @ 2017-03-04 11:08  转换无极限  阅读(308)  评论(0编辑  收藏  举报