官术网_书友最值得收藏!

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/config/目錄下包含了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的完整支持。

主站蜘蛛池模板: 雷波县| 卢氏县| 赤壁市| 曲阳县| 武乡县| 包头市| 石屏县| 交城县| 平阴县| 沂源县| 理塘县| 赤水市| 定州市| 临泉县| 杭州市| 武宁县| 钟山县| 城固县| 固始县| 凌云县| 沅江市| 连平县| 湛江市| 临武县| 昌图县| 秦皇岛市| 民县| 吉木萨尔县| 湟源县| 黄浦区| 咸丰县| 封开县| 焦作市| 隆子县| 江阴市| 谢通门县| 临邑县| 南京市| 双流县| 丁青县| 涞水县|