导航:首页 > 源码编译 > 编译器Cgcc

编译器Cgcc

发布时间:2024-04-17 16:04:17

‘壹’ gcc鏄浠涔堬纻

1銆乬cc

GCC锛圙NU Compiler Collection锛孏NU缂栬疟鍣ㄥ椾欢锛夋槸鐢盙NU寮鍙戠殑缂栫▼璇瑷璇戝櫒銆侴NU缂栬疟鍣ㄥ椾欢鍖呮嫭C銆丆++銆 Objective-C銆 Fortran銆丣ava銆丄da鍜孏o璇瑷鍓岖锛屼篃鍖呮嫭浜呜繖浜涜瑷镄勫簱锛埚俵ibstdc++锛宭ibgcj绛夈傦级

GCC镄勫埯琛锋槸涓篏NU镎崭綔绯荤粺涓挞棬缂栧啓镄勪竴娆剧紪璇戝櫒銆侴NU绯荤粺鏄褰诲簳镄勮嚜鐢辫蒋浠躲傛ゅ勶纴钬滆嚜鐢扁濈殑钖涔夋槸瀹冨皧閲岖敤鎴风殑镊鐢便

2銆乴lvm+Clang

LLVM鏄鏋勬灦缂栬疟鍣(compiler)镄勬嗘灦绯荤粺锛屼互C++缂栧啓钥屾垚锛岀敤浜庝紭鍖栦互浠绘剰绋嫔簭璇瑷缂栧啓镄勭▼搴忕殑缂栬疟镞堕棿(compile-time)銆侀摼鎺ユ椂闂(link-time)銆佽繍琛屾椂闂(run-time)浠ュ强绌洪棽镞堕棿(idle-time)锛屽瑰紑鍙戣呬缭鎸佸紑鏀撅纴骞跺吋瀹瑰凡链夎剼链銆

LLVM璁″垝钖锷ㄤ簬2000骞达纴链鍒濈敱University of Illinois at Urbana-Champaign镄凛hris Lattner涓绘寔寮灞曘2006骞碈hris Lattner锷犵洘Apple Inc.骞惰嚧锷涗簬LLVM鍦ˋpple寮鍙戜綋绯讳腑镄勫簲鐢ㄣ侫pple涔熸槸LLVM璁″垝镄勪富瑕佽祫锷╄呫

3銆乄atcom C/C++

Watcom C/C++ 缂栬疟鍣ㄣ乄atch Fortran 缂栬疟鍣 缁忓凡鍦ㄤ笉鍏跺厛鍓嶆墍灞炲叕鍙窼ybase鍞鍗, 钥岃 SciTech 杞浠跺叕鍙 浣滀负 Open Watcom 寮婧愬寘 鍙戣屻傜被浼间簬鍏朵粬镄 寮婧愮紪璇戝櫒(渚嫔 [GCC])椤圭洰锛学atcom C浠g爜灏忚屼究鎼猴纴 鍏剁紪璇戝櫒钖庣(浠g爜鐢熸垚鍣)镄勭洰镙囩爜鍙鍙樸

璇ョ紪璇戝櫒鍙鍦―OS銆丱S/2銆乄indows绛夋搷浣灭郴缁熶笂杩愯岋纴骞剁敓鎴愬悇绉嶅彲杩愯岀殑(涓嶅繀鏄璇ユ搷浣灭郴缁熺殑)浠g爜銆傝ョ紪璇戝櫒鏀鎸丯ovell NetWare镄 NLM 鐩镙囩爜銆傜洰鍓嶆h繘琛 涓 linux銆乵odern BSD (渚嫔侳reeBSD) 镎崭綔绯荤粺 閲嶅畾鐩镙囩爜锛屼互渚垮湪 x86銆丳owerPC 鍙娿鍏跺畠澶勭悊鍣ㄤ笂杩愯屻

Open Watcom C/C++ 镄1.4鐗堜簬2005骞12链埚彂琛岋纴閲囩敤 Linux x86 涓哄疄楠岀洰镙, 鏀鎸丯T銆丱S/2绛塰ost骞冲彴镟炬湁镆愯寮幂疆镄凲NX鐗堟湰锛屼絾鍏剁紪璇戞墍椤荤殑搴揿苟链寮婧愬彂琛屻傚綋鍓嶆渶杩戠殑绋冲畾鐗堟槸1.9鐗堬纴鍦2010骞6链埚彂琛屻

4銆丏igital Mars

DigitalMars鏄涓娆鹃珮镐ц兘镄勭紪璇戝櫒锛屽姛鑳藉寘钖锛屽揩阃熺紪璇/阈炬帴镞躲佸己澶х殑浼桦寲鎶链銆丆ontract璁捐°佸畬鏁寸殑璧勬簮搴撱佹祻瑙圚TML鏂囨。锛屽弽姹囩紪銆佸簱銆佽祫婧愮紪璇戝櫒绛夈傚懡浠よ屽强GUI鐗堟湰銆佹暀绋嬨佷唬镰佺ず渚嬨佸湪绾挎洿鏂般佹爣鍑嗘ā𨱒垮簱绛夌瓑銆

5銆丮SVC绯诲垪

涓嵘isual Studio闆嗘垚鍙戝竷锛屽井杞镊宸辩殑缂栬疟鍣锛孷S鏄涓涓锘烘湰瀹屾暣镄勫紑鍙戝伐鍏烽泦锛屽畠鍖呮嫭浜嗘暣涓杞浠剁敓锻藉懆链熶腑镓闇瑕佺殑澶ч儴鍒嗗伐鍏凤纴濡俇ML宸ュ叿銆佷唬镰佺℃带宸ュ叿銆侀泦鎴愬紑鍙戠幆澧(IDE)绛夌瓑銆

镓鍐欑殑鐩镙囦唬镰侀傜敤浜庡井杞鏀鎸佺殑镓链夊钩鍙帮纴鍖呮嫭Microsoft Windows銆乄indows Mobile銆乄indows CE銆.NET Framework銆.NET Compact Framework鍜孧icrosoft Silverlight 鍙奥indows Phone銆

‘贰’ 什么是GCC编译

Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。 Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。 .c为后缀的文件,C语言源代码文件; .a为后缀的文件,是由目标文件构成的档案库文件; .C,.cc或.cxx 为后缀的文件,是C++源代码文件; .h为后缀的文件,是程序所包含的头文件; .i 为后缀的文件,是已经预处理过的C源代码文件; .ii为后缀的文件,是已经预处理过的C++源代码文件; .m为后缀的文件,是Objective-C源代码文件; .o为后缀的文件,是编译后的目标文件; .s为后缀的文件,是汇编语言源代码文件; .S为后缀的文件,是经过预编译的汇编语言源代码文件。 Gcc的执行过程 虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。 命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。 Gcc的基本用法和选项 在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。Gcc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。 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 B)#include “myinc.h” 其中,A类使用尖括号(< >),B类使用双引号(“ ”)。对于A类,预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而对于B类,cpp在当前目录中搜寻头文件,这个选项的作用是告诉cpp,如果在当前目录中没有找到需要的文件,就到指定的dirname目录中去寻找。在程序设计中,如果我们需要的这种包含文件分别分布在不同的目录中

‘叁’ gcc和vc编译环境有什么不同

1、GCC是一个编译器集合, VC是MS开发的Windows系统C/C++ IDE.

2、GCC中的C/C++标准库代码和VC肯定是不同的, MS一般都是从别人那买来用, 比如Dinkumware, GCC C/C++的标准库就是GNU自己写的了, 当然这遵循GPL, MS虽然也可以免费拿来用, 但是MS历来仇视GPL和Linux. 还有就是GCC C/C++的标准库对C/C++标准的貌似是最好的.

3、Linux的桌面操作系统基本都集成安装了KDE(K Desktop Environment), X-Windows等图形操作系统界面, 所以各种包装了GCC编译器内核的IDE应运而生, 比如Ubuntu, Mandriva, Fedora, Debian等操作系统中都有自带的GCC IDE, 当然你也可以用Commond Line来操作和编译代码.

‘肆’ gcc缂栬疟鍣╨inux瀹夎単cc缂栬疟鍣╨inux

ubuntulinux涓婥#镄勭紪璇戝櫒鏄浠涔堬纻

Linux绯荤粺镊甯gcc缂栬疟鍣锛屼絾鏄鍙鑳界紪璇愠锛屽傛灉瑕佸姞鍏ュ瑰叾浠栬瑷镄勬敮鎸侊纸fortran銆丆++銆丣ava绛夛级锛岃峰湪Debian/Ubuntu涓璼udoapt-getinstallgfortran铹跺悗杈揿叆镊宸辩殑瀵嗙爜鍗冲彲瀹夎呮垚锷.琛ュ厖:缂栬疟绋嫔簭瀹炰緥:gcc婧愪唬镰佹枃浠-o绋嫔簭钖嶅悓鐞嗭纴fortran鐢╣fortran锛孋++鐢╣++gcc链夊緢澶氶夐”镄勶纴璇﹁乵an镓嫔唽

linux镙囧嗳c鍜宑锷犲姞缂栬疟鍣ㄦ槸锛

Linux缂栬疟c鍜宑++涓鑸琯cc鍜実++灏卞彲浠ヤ简

gcc缂栬疟鍣ㄦ槸浠涔埚叕鍙革纻

GCC鏄疓NU椤圭洰镄勭紪璇戝櫒缁勪欢涔嬩竴锛屼篃鏄疓NU链鍏锋湁浠h〃镐х殑浣滃搧銆傚湪GCC璁捐′箣鍒濅粎浠呬綔涓轰竴涓狢璇瑷镄勭紪璇戝櫒锛屽彲鏄缁忚繃鍗佸氩勾镄勫彂灞曪纴GCC宸茬粡涓崭粎浠呰兘鏀鎸丆璇瑷锛涘畠鐜板湪杩樻敮鎸丄da璇瑷銆丆++璇瑷銆丣ava璇瑷銆丱bjectiveC璇瑷锛孭ascal璇瑷銆丆OBOL璇瑷锛屼互鍙婃敮鎸佸嚱鏁板纺缂栫▼鍜岄昏緫缂栫▼镄凪ercury璇瑷锛岀瓑绛夈

钥孏CC涔熶笉鍐嶅崟鏄疓NUCCompiler镄勬剰镐濓纴钥屾槸GNUCompilerCollection涔熷嵆鏄疓NU缂栬疟鍣ㄥ舵棌镄勬剰镐濅简锛岀洰鍓嶅凡缁忔垚涓篖inux涓嬫渶閲嶈佺殑缂栬疟宸ュ叿涔嬩竴銆

.c鏂囦欢鐢ㄤ粈涔堢紪璇戝櫒锛

C璇瑷缂栬疟鍣ㄥ彲浠ュ垎涓轰袱绫伙纴涓鏄妗岄溃镎崭綔绯荤粺锛屼簩鏄宓屽叆寮忕郴缁熴傛岄溃镎崭綔绯荤粺鍖呮嫭锛歏isualC++銆丢CC浠ュ强LLVMClang锛孷isualC++鍙鑳界敤浜嶹indows镎崭綔绯荤粺锛孏CC鍜孡LVMClang闄や简鍙鐢ㄤ簬Windows镎崭綔绯荤粺涔嫔栵纴涓昏佺敤浜嶶nix/Linux镎崭綔绯荤粺銆

宓屽叆寮忔搷浣灭郴缁熷寘𨰾锛欿eilC51缂栬疟鍣ㄣ丄VRGCC缂栬疟鍣ㄣ丄DS銆丷VDS缂栬疟鍣ㄣ丆CS銆乂isualDSP++缂栬疟鍣ㄧ瓑銆

c璇瑷镄勭紪璇戝櫒链夊摢浜涳纻

C璇瑷缂栬疟鍣ㄥ彲浠ュ垎涓轰袱绫伙纴涓鏄妗岄溃镎崭綔绯荤粺锛屼簩鏄宓屽叆寮忕郴缁熴傛岄溃镎崭綔绯荤粺鍖呮嫭锛歏isualC++銆丢CC浠ュ强LLVMClang锛孷isualC++鍙鑳界敤浜嶹indows镎崭綔绯荤粺锛孏CC鍜孡LVMClang闄や简鍙鐢ㄤ簬Windows镎崭綔绯荤粺涔嫔栵纴涓昏佺敤浜嶶nix/Linux镎崭綔绯荤粺銆

宓屽叆寮忔搷浣灭郴缁熷寘𨰾锛欿eilC51缂栬疟鍣ㄣ丄VRGCC缂栬疟鍣ㄣ丄DS銆丷VDS缂栬疟鍣ㄣ丆CS銆乂isualDSP++缂栬疟鍣ㄧ瓑銆

‘伍’ linux 怎么编译c的源程序的gcc,编译命令是什么

在Linux下面,如果要编译一个C语言源程序,我们要使用gcc编译器。

先将源文件编译成目标文件:gcc - c hello.c

生成hello.o文件,再将目标文件编译成可执行文件:gcc -o hello hello.o

如:

int main(int argc,char **argv)

{

printf("Hello Linux ");

}

(5)编译器Cgcc扩展阅读:

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

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

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

网络_gcc

‘陆’ 常见的C语言编译器是什么

目前最流行的C语言编译器有以下几种:

1、GNU Compiler Collection 或称GCC

GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。

GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的着名例子,由自由软件基金会以GPL协议发布。

2、Microsoft C 或称 MS C

Microsoft C 是c语言的一种IDE(集成开发环境),常见的还有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......

3、Borland Turbo C 或称 Turbo C

Turbo C是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 这些软件很受用户欢迎。

(6)编译器Cgcc扩展阅读:

C编译的整个过程很复杂,大致可以分为以下四个阶段:

1、预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。

2、编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。

3、汇编阶段将汇编语言翻译成机器指令。

4、链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。

‘柒’ CC和gcc是一样的编译器吗

cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C、C++、Objective-C、Ada、Fortran、Java)。因此,它们是不一样的,一个是古老的C编译器,一个是GNU编译器集合,gcc里面的C编译器比cc强大多了,因此没必要用cc。
下载不到cc的原因在于:cc来自于昂贵的Unix系统,cc是商业软件。
Linux下的cc是gcc符号连接,可以通过$ls –l /usr/bin/cc来简单察看,该变量是make程序的内建变量,默认指向gcc。cc符号链接和变量存在的意义在于源码的移植性,可以方便的用gcc来编译老的用cc编译的Unix软件,甚至连makefile都不用改在,而且也便于Linux程序在Unix下编译。

阅读全文

与编译器Cgcc相关的资料

热点内容
手动添加dns服务器加什么数字 浏览:558
单片机中三位数码管原件 浏览:140
pdf可以删除其中一页 浏览:216
清dns缓存的命令 浏览:103
免费pdf在线转换 浏览:768
堆货算法 浏览:878
vsc编译vc程序 浏览:197
centos55命令 浏览:709
美国干编程有什么条件 浏览:505
阿里云服务器远程链接 浏览:251
墨镜慧眼怎么下载厂商的app 浏览:63
iphone加密专线 浏览:493
aes产生加密文件 浏览:417
编程实现蓝牙通信 浏览:771
怎么恢复掉签的app 浏览:849
服务器部署ip地址 浏览:323
涉密场所周边安全防护距离算法 浏览:674
安卓fpse模拟器怎么设置加速 浏览:948
建行app怎么生成电子签章 浏览:510
获取当前时间javadate 浏览:75