GNU Compiler Collection(gcc编译器)官方版是款基于Linux系统打造的编译工具。GNU Compiler Collection(gcc编译器)电脑版以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分。GNU Compiler Collection(gcc编译器)主要用于编译C, C++, Objective-C, Fortran, Java等语言,目前Windows下也出现了gcc编译器的稳定移植版。在Windows下受大家使用比较多的gcc编译器下载移植版有三个:MinGW,Cygwin和Djgpp。
- 
    
    5.11 中文版查看
- 
    
    0.1.9 电脑版查看
- 
    
    官方版查看
- 
    
    20.03 电脑版查看
- 
    
    1.48.0 官方版查看
	 
GNU Compiler Collection(gcc编译器)软件结构
GCC的外部接口长得像一个标准的Unix编译器。使用者在命令列下键入gcc之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连接器以制造可执行的程序。每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码。全部的语言编译器都拥有共通的中介架构:一个前端解析符合此语言的原始码,并产生一抽象语法树,以及一翻译此语法树成为GCC的暂存器转换语言〈RTL〉的后端。编译器最佳化与静态程序码解析技术(例如FORTIFY_SOURCE,一个试图发现缓冲区溢位〈buffer overflow〉的编译器)在此阶段应用于程序码上。最后,适用于此硬件架构的组合语言程序码以Jack Davidson与Chris Fraser发明的算法产出。几乎全部的GCC都由C写成,除了Ada前端大部分以Ada写成。
GNU Compiler Collection(gcc编译器)基本规则
gcc所遵循的部分约定规则:
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,.cc或.cxx 为后缀的文件,是C++源代码文件且必须要经过预处理;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是C源代码文件且不应该对其执行预处理;
.ii为后缀的文件,是C++源代码文件且不应该对其执行预处理;
.m为后缀的文件,是Objective-C源代码文件;
.mm为后缀的文件,是Objective-C++源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。
GNU Compiler Collection(gcc编译器)接口介绍
前端接口
前端的功能在于产生一个可让后端处理之语法树。此语法解析器是手写之递归语法解析器。
中介接口
一般编译器作者会将语法树的最佳化放在前端,但其实此步骤并不看语言的种类而有不同,且不需要用到语法解析器。
后端接口
GCC后端的行为因不同的前处理器宏和特定架构的功能而不同,例如不同的字符尺寸、呼叫方式与大小尾序等。后端接口的前半部利用这些讯息决定其RTL的生成形式,因此虽然GCC的RTL理论上不受处理器影响,但在此阶段其抽象指令已被转换成目标架构的格式。
GNU Compiler Collection(gcc编译器)使用方法
解压缩
拷贝gcc-4.1.2.tar.bz2(我下载的压缩文件)到/usr/local/src(根据自己喜好选择)下,根据压缩格式,选择下面相应的一种方式解包(以下的“%”表示命令行提示符):
% tar zxvf gcc-4.1.2.tar.gz
或者
% bzcat gcc-4.1.2.tar.bz2 | tar xvf -
新生成的gcc-4.1.2这个目录被称为源目录,用${srcdir}表示它。以后在出现${srcdir}的地方,应该用真实的路径来替换它。用pwd命令可以查看当前路径。
在${srcdir}/INSTALL目录下有详细的GCC安装说明,可用浏览器打开index.html阅读。
建立目标目录
目标目录(用${objdir}表示)是用来存放编译结果的地方。GCC建议编译后的文件不要放在源目录${srcdir]中(虽然这样做也可以),最好单独存放在另外一个目录中,而且不能是${srcdir}的子目录。
例如,可以这样建立一个叫 /usr/local/gcc-4.1.2的目标目录:
% mkdir /usr/local/gcc-4.1.2
% cd gcc-4.1.2
以下的操作主要是在目标目录 ${objdir} 下进行。
配置
配置的目的是决定将GCC编译器安装到什么地方(${destdir}),支持什么语言以及指定其它一些选项等。其中,${destdir}不能与${objdir}或${srcdir}目录相同。
配置是通过执行${srcdir}下的configure来完成的。其命令格式为(记得用你的真实路径替换${destdir}):
% ${srcdir}/configure --prefix=${destdir} [其它选项]
例如,如果想将GCC 4.1.2安装到/usr/local/gcc-4.1.2目录下,则${destdir}就表示这个路径。
在我的机器上,我是这样配置的:
% ../gcc-4.1.2/configure --prefix=/usr/local/gcc-4.1.2 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java
将GCC安装在/usr/local/gcc-4.1.2目录下,支持C/C++和JAVA语言,其它选项参见GCC提供的帮助说明。
编译
% make
安装
执行下面的命令将编译好的库文件等拷贝到${destdir}目录中(根据你设定的路径,可能需要管理员的权限):
% make install
至此,GCC 4.1.2安装过程就完成了。
其它设置
GCC 4.1.2的所有文件,包括命令文件(如gcc、g++)、库文件等都在${destdir}目录下分别存放,如命令文件放在bin目录下、库文件在lib下、头文件在include下等。由于命令文件和库文件所在的目录还没有包含在相应的搜索路径内,所以必须要作适当的设置之后编译器才能顺利地找到并使用它们。
gcc、g++、gcj的设置
要想使用GCC 4.1.2的gcc等命令,简单的方法就是把它的路径${destdir}/bin放在环境变量PATH中。我不用这种方式,而是用符号连接的方式实现,这样做的好处是我仍然可以使用系统上原来的旧版本的GCC编译器。
首先,查看原来的gcc所在的路径:
% which gcc
在我的系统上,上述命令显示:/usr/bin/gcc。因此,原来的gcc命令在/usr/bin目录下。我们可以把GCC 4.1.2中的gcc、g++、gcj等命令在/usr/bin目录下分别做一个符号连接:
% cd /usr/bin
% ln -s ${destdir}/bin/gcc gcc412
% ln -s ${destdir}/bin/g++ g++412
% ln -s ${destdir}/bin/gcj gcj412
这样,就可以分别使用gcc412、g++412、gcj412来调用GCC 4.1.2的gcc、g++、gcj完成对C、C++、JAVA程序的编译了。同时,仍然能够使用旧版本的GCC编译器中的gcc、g++等命令。
库路径的设置
将${destdir}/lib路径添加到环境变量LD_LIBrarY_PATH中,例如,如果GCC 4.1.2安装在/usr/local/gcc-4.1.2目录下,在RH Linux下可以直接在命令行上执行
% export LD_LIBRARY_PATH=/usr/local/gcc-4.1.2/lib
最好添加到系统的配置文件中,这样就不必要每次都设置这个环境变量了,在文件$HOME/.bash_profile中添加下面两句:
LD_LIBRARY_PATH=/usr/local/gcc-4.1.2/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
重启系统设置生效,或者执行命令
% source $HOME/.bash_profile
测试
用新的编译命令(gcc412、g++412等)编译你以前的C、C++程序,检验新安装的GCC编译器是否能正常工作
小编推荐:GNU Compiler Collection(gcc编译器)主要用于编译C, C++, Objective-C, Fortran, Java等语言,pc下载网还有智能反编译器、Fortran90编译器等绝对值得大家下载使用的相关软件,快来选择您最喜欢的吧!
 
         
         
                        
 抖音电脑版
                                抖音电脑版
                             QQ浏览器
                                QQ浏览器
                             驱动精灵
                                驱动精灵
                             鲁大师
                                鲁大师
                             360浏览器
                                360浏览器
                             百度一下
                                百度一下
                             Flash中心
                                Flash中心
                             photoshop cs6
                                photoshop cs6
                             
                                         
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                         
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
 
                                         搜狗浏览器
                                        搜狗浏览器
                                     360软件管家
                                        360软件管家
                                     腾讯视频播放器
                                        腾讯视频播放器
                                     优酷客户端
                                        优酷客户端
                                     爱奇艺
                                        爱奇艺
                                     向日葵远程控制软件
                                        向日葵远程控制软件
                                     网易云音乐
                                        网易云音乐
                                     WPS Office
                                        WPS Office
                                     CorelDraw X4
                                        CorelDraw X4
                                     腾讯应用宝
                                        腾讯应用宝
                                     百度网盘
                                        百度网盘
                                     游戏加加
                                        游戏加加
                                     网易MuMu12
                                        网易MuMu12
                                     Origin橘子平台
                                        Origin橘子平台
                                     迅雷11
                                        迅雷11
                                     AutoCAD2007
                                        AutoCAD2007
                                     益盟操盘手
                                        益盟操盘手
                                     千牛卖家版
                                        千牛卖家版
                                    





























