找软件用软件,到华军软件园!
您的位置:华军软件园>LINUX软件>编程开发>

GCC For Linux

GCC For Linux

GCC For Linux 4.9.1GCC For Linux手机版

  • 版  本:4.9.1
  • 软件授权:免费软件
  • 软件类型:国外软件
  • 软件语言:英文
  • 更新时间:2017/11/24 14:28:00
  • 应用平台:Linux
  • 软件官网:官方网站
  • 软件大小:85.52M
基本简介
GCC For Linux

GCC编译器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。

相似软件
版本说明
软件地址

GCC For Linux

 

gcc编译器下载介绍


  GCC的外部接口长得像一个标准的Unix编译器。使用者在命令列下键入gcc之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连接器以制造可执行的程序。

  每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码。全部的语言编译器都拥有共通的中介架构:一个前端解析符合此语言的原始码,并产生一抽象语法树,以及一翻译此语法树成为GCC的暂存器转换语言〈RTL〉的后端。编译器最佳化与静态程序码解析技术(例如FORTIFY_SOURCE,一个试图发现缓冲区溢位〈buffer overflow〉的编译器)在此阶段应用于程序码上。最后,适用于此硬件架构的组合语言程序码以Jack Davidson与Chris Fraser发明的算法产出。

  几乎全部的GCC都由C写成,除了Ada前端大部分以Ada写成。

  前端接口

  前端的功能在于产生一个可让后端处理之语法树。此语法解析器是手写之递归语法解析器。

  直到2004年,程序的语法树结构尚无法与欲产出的处理器架构脱钩。而语法树的规则有时在不同的语言前端也不一样,有些前端会提供它们特别的语法树规则。

  在2005年,两种与语言脱钩的新型态语法树纳入GCC中。它们称为GENERIC与GIMPLE。语法解析变成产生与语言相关的暂时语法树,再将它们转成GENERIC。之后再使用"gimplifier"技术降低GENERIC的复杂结构,成为一较简单的静态唯一形式(Static Single Assignment form,SSA)基础的GIMPLE形式。此形式是一个与语言和处理器架构脱钩的全域最佳化通用语言,适用于大多数的现代编程语言。

  中介接口

  一般编译器作者会将语法树的最佳化放在前端,但其实此步骤并不看语言的种类而有不同,且不需要用到语法解析器。因此GCC作者们将此步骤归入通称为中介阶段的部分里。此类的最佳化包括消解死码、消解重复运算与全域数值重编码等。许多最佳化技巧也正在实作中。

  后端接口

  GCC后端的行为因不同的前处理器宏和特定架构的功能而不同,例如不同的字符尺寸、呼叫方式与大小尾序等。后端接口的前半部利用这些讯息决定其RTL的生成形式,因此虽然GCC的RTL理论上不受处理器影响,但在此阶段其抽象指令已被转换成目标架构的格式

  GCC的最佳化技巧依其释出版本而有很大不同,但都包含了标准的最佳化算法,例如循环最佳化、执行绪跳跃、共通程序子句消减、指令排程等等。而RTL的最佳化由于可用的情形较少,且缺乏较高阶的资讯,因此相比较起来,增加的GIMPLE语法树形式,便显得比较不重要。

  后端经由一次重读取步骤后,利用描述目标处理器的指令集时所取得的信息,将抽象暂存器替换成处理器的真实暂存器。此阶段非常复杂,因为它必须关注所有GCC可移植平台的处理器指令集的规格与技术细节。

  后端的最后步骤相当公式化,仅仅将前一阶段得到的汇编语言代码藉由简单的子例程转换其暂存器与内存位置成相对应的机器码。

 

gcc编译器下载使用方法


  在使用GCC编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。具体可参考GCC Manual。

  GCC最基本的用法是∶gcc [options] [filenames]

  其中options就是编译器所需要的参数,filenames给出相关的文件名称。

  -c,只编译,不链接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。

  -o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。

  -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。

  -O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、链接的速度就相应地要慢一些。

  -O2,比-O更好的优化编译、链接,当然整个编译、链接过程会更慢。

  -Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况∶

  A)#include <myinc.h>

  B)#include “myinc.h”

  其中,A类使用尖括号(< >),B类使用双引号(“ ”)。对于A类,预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而B类,预处理程序在目标文件的文件夹内搜索相应文件。

  -v gcc执行时执行的详细过程,gcc及其相关程序的版本号

  原版gcc manual该选项英文解释

  Print (on standard error output) the commands executed to run the stages of compilation. Also print the version number of the compiler driver program and of the preprocessor and the compiler proper.

  编译程序时加上该选项可以看到gcc搜索头文件/库文件时使用的搜索路径!

 

gcc编译器基本规则


  gcc所遵循的部分约定规则:

  .c为后缀的文件,C语言源代码文件;

  .a为后缀的文件,是由目标文件构成的档案库文件;

  .C,.cc或.cxx 为后缀的文件,是C++源代码文件且必须要经过预处理;

  .h为后缀的文件,是程序所包含的头文件;

  .i 为后缀的文件,是C源代码文件且不应该对其执行预处理;

  .ii为后缀的文件,是C++源代码文件且不应该对其执行预处理;

  .m为后缀的文件,是Objective-C源代码文件;

  .mm为后缀的文件,是Objective-C++源代码文件;

  .o为后缀的文件,是编译后的目标文件;

  .s为后缀的文件,是汇编语言源代码文件;

  .S为后缀的文件,是经过预编译的汇编语言源代码文件。

 

所属专题
linux系统

linux系统

Linux系统是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。...

软件截图
  • GCC For Linux
GCC For Linux下载地址
网友评论
网名:
(您的评论需要经过审核才能显示)
  • 置顶 华军网友 2017-06-22 20:52:53
    下吧
  • 置顶 华军网友 2017-04-03 11:47:06
    还是华军软件园靠谱,其它网站的GCC For Linux要么是版本旧,要么是下载不了
  • 置顶 华军网友 2017-01-12 19:38:34
    非常不错,GCC For Linux良心,已经很难找到这么好的编程开发软件了
  • 置顶 华军网友 2016-12-25 22:36:40
    GCC For Linux非常好用,速度快,功能强,用起来就是爽,本人极力推荐
  • 置顶 华军网友 2016-08-27 22:26:53
    五笔怎么下载不了啊
  • 10楼 华军网友 2016-07-15 21:34:38
    找GCC For Linux好久了,终于在华军软件找到了,而且还是GCC For Linux最新版本,好给力
  • 9楼 华军网友 2016-01-07 16:04:22
    GCC For Linux超级棒!点一亿个赞
  • 8楼 华军网友 2015-10-28 11:36:40
    GCC For Linux4.9.1真的很好用哦,虽然我是第一次使用GCC For Linux,但我已经深深的爱上了你,哈哈哈
  • 7楼 华军网友 2015-07-22 18:34:32
    始终用不惯GCC For Linux这货,用户体验方面的内容还有待改进啊。
  • 6楼 华军网友 2015-04-27 21:39:15
    我下载的没有病毒啊,很好很实用
精彩推荐
软件介绍
相关文章
所属专题
相关下载
软件截图
下载地址
网友点评
返回顶部