歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

linux學習之初識gcc

GCC是GNU項目中最符合ANSI C標准的編譯系統,它有著強大的功能,它的功能主要體現在兩個方面:

1:GCC可以為x86 、ARM 、MIPS等不同體系結構的硬件平台編譯程序。

2:GCC可以編譯C 、C+ 、Pascal 、Java等數十種高級語言。

此外,它的編譯效果也要高於其他的編譯系統的20%~30%。正是基於它的這些強悍的功能,使得它在Linux開發領域上獨占鳌頭,因此,在嵌入式Linux開發領域上,使用的都是GCC編譯器。

GCC編譯可分為四個階段:預處理 、 編譯 、 匯編、鏈接 。下面 讓我們來逐一認識。

預處理:

當你寫了一個 .c 文件時(如hello.c),由於hello.c使用了頭文件stdio..h,所以GCC在編譯時要先把頭文件stdio.h中的內容加載到hello.c中,所以只需要再shell中輸入命令“

gcc - E hello.c -o hello.i”,參數E告訴gcc命令只進行預編譯,不做其他處理,即在預處理階段不做語法檢查。

編譯:

在shell中輸入命令“gcc -c hello.i -o hello.s”,參數c告訴gcc命令只進行編譯,不做其他處理,但是在編譯階段會檢查語法錯誤、進行語法分析,當有語法錯誤時,編譯不能通過。

匯編:

在shell中輸入命令“ gcc -s hello.c -o hello.o”參數s告訴gcc命令只進行匯編,不做其他處理。而在匯編階段是把匯編程序翻譯成CPU可以識別的二進制文件,該文件又稱為目標文件。

鏈接:

鏈接階段是把程序中的所有目標文件和所需的庫文件都鏈接在一起,最後生成一個可以直接運行的文件,通常叫做可執行文件。

在shell中輸入命令“gcc hello.o -o hello”,運行完後會生成一個名為hello的可執行文件,輸入命令“ ./hello”即可得到hello文件的運行結果。

GCC命令中生成的可執行文件有三種格式:a.out 、 COFF 、ELF,由於前兩個都是較老的格式,所以現在在Linux平台上可執行文件的格式主要是ELF。

初學Linux,知識量少,不足之處,請多多包含、多多指教。 隨著學習的深入 ,還會在對此進行修改和完善。

Copyright © Linux教程網 All Rights Reserved