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的完整支持。
推薦閱讀
- Getting Started with Gulp(Second Edition)
- 從零開始:數字圖像處理的編程基礎與應用
- Spring 5企業級開發實戰
- Microsoft Dynamics 365 Extensions Cookbook
- C# Programming Cookbook
- Vue.js 3.0源碼解析(微課視頻版)
- 營銷數據科學:用R和Python進行預測分析的建模技術
- Python王者歸來
- 基于差分進化的優化方法及應用
- 代替VBA!用Python輕松實現Excel編程
- 深度探索Go語言:對象模型與runtime的原理特性及應用
- 從零開始學Android開發
- Data Science Algorithms in a Week
- 現代CPU性能分析與優化
- 高質量程序設計指南:C++/C語言