linux软件编译器
Ⅰ 一文探讨Keil在linux环境中的使用keillinux
Keil是以C语言编写的一种用于嵌入式软件开发的专用集成开发环境。它不仅可以安装在Windows和Mac OS X上,还可以安装在Linux上。本文将探讨Keil在Linux环境中的使用。
首先,必须安装正确的编译器。目前,linux环境下最常使用的编译器是GNU编译,它可以将C / C + + / Objective C / Fortran语言代码编译成代码,可以在Linux环境中运行。这些编译器可以在root用户模式下通过软件源安装,或者可以从官方网站下载源代码并按照安装说明进行安装。
然后,安装Keil的源代码以及相关的开发工具。Keil的源码可以在官方网站上免费下载,并且可以在指定的Linux环境中安装。安装完成后,可以通过编辑配置文件来初始化Keil,比如添加编译器和其他开发工具,以及指定其工作目录。
接下来,编写Keil特定的代码。可以使用Keil提供的完整程序库,可以写出各种Keil专有功能的代码。此外,也可以使用普通的C语言程序,但是要注意Keil也限制了传统C语言的一些特性,从而可以更方便的用Keil编写代码。
最后,把编写好的代码编译到可执行代码。在Linux环境中,可以用常用编译器,如gcc / g++等编译程序,把代码编译成可执行的可执行文件。
以上就是Keil在Linux环境中的使用总结。本文介绍了安装和定义Keil的步骤,以及如何使用Keil特定的代码库编写程序,以及如何编译程序。当然,安装和配置Keil可能会稍复杂,但它能帮助开发者快速编写和调试嵌入式应用程序。
Ⅱ GCC是什么单位
GCC是一个用于linux系统下编程的编译器。GCC又是海湾阿拉伯国家合作委员会的英文缩写。
概述:
GCC(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套 GNU编译器套装
以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划的关键部分,亦是自由的类Unix及苹果电脑 Mac OS X 操作系统的标准编译器。 GCC 原名为 GNU C 语言编译器,因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada与其他语言。
历史:
GCC是由理乍得·马修·斯托曼在1985年开始的。他首先扩增一个旧有的编译器,使它能编译C,这个编译器一开始是以Pastel语言所写的。Pastel是一个不可移植的Pascal语言特殊版,这个编译器也只能编译Pastel语言。为了让自由软件有一个编译器,后来此编译器由斯托曼和Len Tower在1987年以C语言重写并成为GNU专案的编译器。GCC的建立者由自由软件基金会直接管理。 在1997年,一群不满GCC缓慢且封闭的创作环境者,组织了一个名为EGCS〈Experimental/Enhanced GNU Compiler System〉的专案,此专案汇整了数项实验性的分支进入某个GCC专案的分支中。EGCS比起GCC的建构环境更有活力,且EGCS最终也在1999年四月成为GCC的官方版本。 GCC目前由世界各地不同的数个程序设计师小组维护。它是移植到中央处理器架构以及操作系统最多的编译器。 由于GCC已成为GNU系统的官方编译器(包括GNU/Linux家族),它也成为编译与建立其他操作系统的主要编译器,包括BSD家族、Mac OS X、NeXTSTEP与BeOS。 GCC通常是跨平台软件的编译器首选。有别于一般局限于特定系统与执行环境的编译器,GCC在所有平台上都使用同一个前端处理程序,产生一样的中介码,因此此中介码在各个其他平台上使用GCC编译,有很大的机会可得到正确无误的输出程序。
结构:
GCC的外部接口长得像一个标准的Unix编译器。使用者在命令列下键入gcc之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连结器以制造可执行的程序。 每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码。全部的语言编译器都拥有共通的中介架构:一个前端解析符合此语言的原始码,并产生一抽象语法树,以及一翻译此语法树成为GCC的暂存器转换语言〈RTL〉的后端。编译器最佳化与静态程序码解析技术(例如FORTIFY_SOURCE,一个试图发现缓冲区溢位〈buffer overflow〉的编译器)在此阶段应用于程序码上。最后,适用于此硬件架构的组合语言程序码以Jack Davidson与Chris Fraser发明的算法产出。 几乎全部的GCC都由C写成,除了Ada前端大部分以Ada写成。 前端接口 前端的功能在于产生一个可让后端处理之语法树。此语法解析器是手写之递回语法解析器。 直到最近,程序的语法树结构尚无法与欲产出的处理器架构脱钩。而语法树的规则有时在不同的语言前端也不一样,有些前端会提供它们特别的语法树规则。 在2005年,两种与语言脱钩的新型态语法树纳入GCC中。它们称为GENERIC与GIMPLE。语法解析变成产生与语言相关的暂时语法树,再将它们转成GENERIC。之后再使用"gimplifier"技术降低GENERIC的复杂结构,成为一较简单的静态唯一形式(Static Single Assignment form,SSA)基础的GIMPLE形式。此形式是一个与语言和处理器架构脱钩的全域最佳化通用语言,适用于大多数的现代编程语言。 中介接口 一般编译器作者会将语法树的最佳化放在前端,但其实此步骤并不看语言的种类而有不同,且不需要用到语法解析器。因此GCC作者们将此步骤归入通称为中介阶段的部分里。此类的最佳化包括消解死码、消解重复运算与全域数值重编码等。许多最佳化技巧也正在实作中。 后端接口 GCC后端的行为因不同的前处理器宏和特定架构的功能而不同,例如不同的字符尺寸、呼叫方式与大小尾序等。后端接口的前半部利用这些讯息决定其RTL的生成形式,因此虽然GCC的RTL理论上不受处理器影响,但在此阶段其抽象指令已被转换成目标架构的格式。 GCC的最佳化技巧依其释出版本而有很大不同,但都包含了标准的最佳化算法,例如循环最佳化、执行绪跳跃、共通程序子句消减、指令排程等等。而RTL的最佳化由于可用的情形较少,且缺乏较高阶的资讯,因此比较起近来增加的GIMPLE语法树形式[2],便显得比较不重要。 后端经由一重读取步骤后,利用描述目标处理器的指令集时所取得的资讯,将抽象暂存器替换成处理器的真实暂存器。此阶段非常复杂,因为它必须关照所有GCC可移植平台的处理器指令集的规格与技术细节。 后端的最后步骤相当公式化,仅仅将前一阶段得到的组合语言码借由简单的副函式转换其暂存器与内存位置成相对应的机械码。
Ⅲ 如何在Linux中安装cc和gcc编译器
方法如下: 一:挂载yum源,在终端输入指令:mount -o loop xxxx.iso /media/CentOS/ 说明:xxxx.iso 是你的镜像文件名(注意路径正确) /media/Centos/ 这个是挂载后文件地址,Centos是自己建的,也可以自己选着路径; 二:修改/etc/yum.repos.d/CentOS-Media.repo 1.首先进入文件: vi /etc/yum.repos.d/CentOS-Media.repo 2.修改文件如下: [c6-media] name=CentOS-$releasever - Media #名字而已 baseurl=file:///media/Centos #刚刚挂载镜像的地址 gpgcheck=1 enabled=1 gpgkey=file:///etc/media/Centos/RPM-GPG-KEY-CentOS-6 3. 退出保存。 4.输入指令:gcc -v 看看有没有反应。
Ⅳ linux中常用编译器是什么
Linux 下可用的编译器有 GCC、EGCS 和 PGCC,其中最常用的编译器便是 GCC。
GCC 起初是 GNU 推出的 C语言编
译器,用于类 Unix 系统下的编程,所以名为 GNU C Compiler 。随着众多自由开发者的加入,GCC
发展迅速,如今已成为一个支持众多语言的编译器了,其中包括 C、C++、Ada、Object C 和 Java 等,以至于 GCC 开始被扩展为
GNU Compiler Collection ,也就是“GNU 编译器集合”的意思。
GCC用法:
1、GCC基本用法及其选项
gcc 或 g++ 的用法跟参数含义几乎一样,他们最基本的用法是:
2、只编译子程序(-c)
3、产生目标文件(-o)
4、附加调试信息(-g)
5、多文件编译
6、连接库文件。
Ⅳ 总结Linux下的4种常用的编译开发工具——编辑器、编译器、调试器及项目管理器的功能。
编辑器:vi,getedit等,写代码用的。
编译器:gcc/g++,把代码编译成二进制程序
调试器:gdb,kgdb等,调试程序用的
项目管理器:一般用eclipse等IDE来管理工程