zl程序教程

您现在的位置是:首页 >  其它

当前栏目

《深入分析GCC 》——1.2 GCC的特点

1.2 特点 gcc 深入分析
2023-09-11 14:16:11 时间

本节书摘来自华章出版社《深入分析GCC 》一书中的第1章,第1.2节,作者 王亚刚 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 GCC的特点

GCC作为目前较为成功的编译系统之一,具有非常突出的优点,主要包括:

(1)GCC编译系统支持众多的前端编程语言,GCC 4.4.0中${GCC_SOURCE}/gcc/目录下包含了前端编程语言处理的目录及其代码(其中,${GCC_SOURCE}表示GCC源代码的主目录,下同),主要包括C、C++、Ada、Fortran、Java、Objective-C、Objective-C++等语言的前端处理,可以使用如下命令查看这些目录:
[GCC@localhost gcc-4.4.0]$ ls -l gcc

drwxrwxr-x. 3 GCC GCC 69632 Apr 21 2009 ada

drwxrwxr-x. 2 GCC GCC 4096 Nov 27 2013 cp

drwxrwxr-x. 2 GCC GCC 4096 Nov 6 15:14 fortran

drwxrwxr-x. 2 GCC GCC 4096 Oct 9 17:34 java

drwxrwxr-x. 2 GCC GCC 4096 Apr 21 2009 objc

drwxrwxr-x. 2 GCC GCC 4096 Apr 21 2009 objcp
(2)GCC支持众多的目标机器体系结构,具有良好的可移植性,GCC 4.4.0的${GCC_SOURCE}/gcc/conf?ig/目录下包含了GCC对目标处理器的支持情况,其中包括了各种主流的处理器,例如,arm、i386、mips以及alpha等,以下是GCC 4.4.0代码所支持的处理器列表:
alpha arc arm avr cris

crx fr30 frv h8300 i386

ia64 iq2000 m32c m32r m68hc11

m68k mcore mips mmix mn10300

pa pdp11 picochip rs6000 s390

score sh sparc spu stormy16

v850 vax xtensa
(3)GCC具有丰富的配套工具链支持。

GCC不是一个孤立的编译工具,而是整个GNU工程中的一个组成部分。GNU工程中的其他软件,包括GNU C库glibc、GNU的调试工具gdb,以及GNU二进制工具链binutils(GNU Binutils Toolchains,例如汇编工具as,连接工具ld,目标文件分析工具objdump、objcopy等)等都与GCC关系密切,互相依赖。
可以使用下述的shell命令查看GNU二进制工具链中主要包括的工具:

[GCC@localhost paag-gcc]$ rpm -ql binutils | xargs ls -l | grep "/usr/bin"

-rwxr-xr-x. 1 root root 24352 Oct 15 2014 /usr/bin/addr2line

-rwxr-xr-x. 1 root root 54444 Oct 15 2014 /usr/bin/ar

-rwxr-xr-x. 1 root root 527220 Oct 15 2014 /usr/bin/as

-rwxr-xr-x. 1 root root 26356 Oct 15 2014 /usr/bin/c++filt

-rwxr-xr-x. 1 root root 99212 Oct 15 2014 /usr/bin/gprof

-rwxr-xr-x. 1 root root 588116 Oct 15 2014 /usr/bin/ld

-rwxr-xr-x. 1 root root 38800 Oct 15 2014 /usr/bin/nm

-rwxr-xr-x. 1 root root 212216 Oct 15 2014 /usr/bin/objcopy

-rwxr-xr-x. 1 root root 276528 Oct 15 2014 /usr/bin/objdump

-rwxr-xr-x. 1 root root 54448 Oct 15 2014 /usr/bin/ranlib

-rwxr-xr-x. 1 root root 288560 Oct 15 2014 /usr/bin/readelf

-rwxr-xr-x. 1 root root 27196 Oct 15 2014 /usr/bin/size

-rwxr-xr-x. 1 root root 25832 Oct 15 2014 /usr/bin/strings

-rwxr-xr-x. 1 root root 212244 Oct 15 2014 /usr/bin/strip
(4)GCC提供可靠、高效、高质量的目标代码。

GCC是目前使用的最为广泛的编译器系统之一,众多工业级应用的实践证明,GCC编译系统生成的代码具有很高的可靠性和运行效率。

(5)GCC对于并行编译的支持。

在GCC 4.4.0中,已经提供了对OpenMP的完整支持。


通过编译函数库来学习GCC【转】 转自:http://blog.csdn.net/u012365926/article/details/51446295 什么是库 在windows平台和linux平台下都大量存在着库。