gcc網絡什么意思?
gcc(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟件,也是 GNU計劃的關鍵部分。
GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)采納為標準的編譯器,GCC同樣適用于微軟的Windows。GCC是自由軟件過程發展中的著名例子,由自由軟件基金會以GPL協議發布。
GCC功能與作用:
1、預處理
命令gcc首先調用cpp進行預處理,在預處理過程中,對源代碼文件中的文件包含(include)、預編譯語句(如宏定義define等)進行分析。
2、編譯
用GCC編譯C/C++代碼時,它會試著用最少的時間完成編譯并且編譯后的代碼易于調試。易于調試意味著編譯后的代碼與源代碼有同樣的執行順序,編譯后的代碼沒有經過優化。
3、連接
當所有的目標文件都生成之后,gcc就調用ld來完成最后的關鍵性工作,這個階段就是連接。在連接階段,所有的目標文件被安排在可執行程序中的恰當的位置,同時,該程序所調用到的庫函數也從各自所在的檔案庫中連到合適的地方。
4、匯編
匯編過程是針對匯編語言的步驟,調用as進行工作,一般來講,.S為后綴的匯編語言源代碼文件和匯編、.s為后綴的匯編語言文件經過預編譯和匯編之后都生成以.o為后綴的目標文件。
GCC在執行編譯工作的時候,總共需要4步:
1、預處理,生成 .i 的文件[預處理器cpp]
2、將預處理后的文件轉換成匯編語言, 生成文件 .s [編譯器egcs]
3、有匯編變為目標代碼(機器代碼)生成 .o 的文件[匯編器as]
4、連接目標代碼, 生成可執行程序 [鏈接器ld]
常用選項
-ANSI 只支持 ANSI 標準的 C 語法。這一選項將禁止 GNU C 的某些特色, 例如 asm 或 typeof 關鍵詞。
1、-c:只編譯并生成目標文件。
2、-DMACRO:以字符串"1"定義 MACRO 宏。
3、-DMACRO=DEFN:以字符串"DEFN"定義 MACRO 宏。
4、-E:只運行 C 預編譯器。
5、-g:生成調試信息。GNU 調試器可利用該信息。
6、-IDIRECTORY:指定額外的頭文件搜索路徑DIRECTORY。
7、-LDIRECTORY:指定額外的函數庫搜索路徑DIRECTORY。
8、-lLIBRARY:連接時搜索指定的函數庫LIBRARY。
9、-m486:針對 486 進行代碼優化。