簡單快速瞭解gcc(新手入門)

剛安裝上Linux系統,安好Vim的時候,還不知道該怎麼用它,後來基本上用的很多的就是 vim xxx.c、gcc

xxx.c、./aout三步走,gcc的選項很多,全部記住會很難,所以我挑出來一些常用的選項,把這些整理下來

(其實這些應該是早早就應該瞭解的,一直拖到現在,實在不應該)

1.gcc簡介

gcc命令使用GNU推出的基於C/C++的編譯器,是開放源代碼領域應用最廣泛的編譯器,具有功能強大,

編譯代碼支持性能優化等特點。現在很多程序員都應用GCC,怎樣才能更好的應用GCC。目前,GCC可

以用來編譯C/C++、FORTRANJAVA、OBJC、ADA等語言的程序,可根據需要選擇安裝支持的語言

2.gcc工作步驟

gcc/g++ 在執行編譯工作的時候,總共需要 4 步

(1)預處理,生成.i的文件[調用預處理器cpp]

(2)將預處理後的文件轉換成彙編語言,生成文件.s[調用編譯器 gcc/egcs]

(3)由彙編變爲目標代碼(機器代碼)生成.o的文件[調用匯編器as]

(4)連接目標代碼,生成可執行程序[調用鏈接器ld]

3.gcc語法:

gcc (選項) (參數)

選項:

-o:指定生成的輸出文件;

-E:僅執行編譯預處理;

-S:將C代碼轉換爲彙編代碼; -

-wall:顯示警告信息;

-c:僅執行編譯操作,不進行連接操作

參數:

C源文件:指定C語言源代碼文件

4. gcc常用選項

(1)常規選項

無選項編譯鏈接

gcc   test.c

將test.c預處理、彙編、編譯並鏈接形成可執行文件。這裏未指定輸出文件,結果會在與helloworld.c相同

的目錄下產生一個a.out的可執行文件。

選項 -o

gcc test.c -o test

將test.c預處理、彙編、編譯並鏈接形成可執行文件test。-o選項用來指定輸出文件的文件名。

選項-S

gcc -S test.c

產生一個名字爲test.s的彙編源文件

選項 -c

gcc -c test.c

只編譯,不鏈接,生成一個名爲test.o的obj文件

選項-E

gcc -E test.c

只對文件進行預處理,不生成文件,預處理結果會顯示在屏幕上,如需要保存可以重定向

(2)優化選項

選項 -O

gcc -O test.c

產生一個經過優化,名爲a.out的可執行文件,也可以同時使用-o選項,以指定輸出文件名

選項-O2

gcc -O2 test.c

進一步優化,產生一個經過最大優化,名爲a.out的可執行文件

(3)調試選項

選項-g

gcc -g test.c

在編譯的時候,產生調試信息,生成供gdb調試器可用的可執行文件

選項-pg

gcc -pg test.c

產生供gpro剖析用的可執行文件

5.多源文件編譯方法

如果有多個源文件,基本有兩種編譯方法:

假設有兩個源文件爲test1.c和test2.c

多個文件一起編譯

gcc test1.c test2.c -o test

將test1.c和test2.c分別編譯後鏈接生成test可執行文件

分別編譯各個源文件,之後對編譯後輸出的目標文件鏈接

gcc -c test1.c                        //將test1.c編譯成test1.o
gcc -c test2.c                        //將test2.c編譯成test2.o
gcc -o test1.c test2.c -o test        //將test1.c和test2.c鏈接成test</span>

以上兩種方法相比較,第一中方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的

文件,未修改的文件不用重新編譯

發佈了27 篇原創文章 · 獲贊 59 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章