GCC的常識
1、 gcc的全稱: GNU C Compiler ,是GNU的一款編譯器
2、 gcc通過後綴名來區別輸入文件的類型;
常用文件類型:.
c C語言源代碼文件
.C/.cc C++源代碼文件
.h 頭文件(head也即include)
.i 已經預處理過的C源代碼文件 //預處理:完成頭文件和宏定義的展開
.ii 已經預處理過的C++源代碼文件
.s 匯編語言的源代碼
.S 預編譯的匯編語言源代碼文件
.o 編譯後的目標文件object
GCC基本用法
1、 gcc編譯程序分為四個階段產生可執行程序:
Pre-Processing 預處理
gcc -E hello.c -o hello.i //完成頭文件和宏定義的展開,生成hello.i預處理文件
Compiling 編譯
gcc -S hello.i //生成匯編代碼,生成hello.s的匯編文件
Assembling 匯編
gcc -c hello.s //生成二進制目標文件,生成hello.o文件
Linking 鏈接
gcc hello.o -o hello //鏈接相關庫,生成可執行文件hello,沒有後綴
注:一般生成可執行程序,可以直接 : gcc hello.c -o hello
運行該可執行程序: ./hello
2、使用方法:
gcc +要編譯的文件+-o+編譯後生成的文件名 注:-o也即是output_filename,是指定編譯後生成的文件名,
不是編譯選項,如果沒指定則默認生成a.out可執行文件
eg: gcc hello.c -o hello //將hello.c編譯鏈接成可執行文件hello
gcc +[編譯選項]+要編譯的文件+-o+編譯後生成的文件名
常用選項:gcc -c hello.c //-c只編譯,不鏈接成可執行文件,生成 hello.o 的目標文件
gcc -O hello.c //-O對程序進行優化,使生成的可執行文件執行效率提高
gcc -O2 hello.c //-O2比-O更好的優化,是生成的可執行文件效率更高
執行方法: ./hello //執行當前目錄下的可執行文件,./表示當前目錄,要執行其他目錄的可執行文件,輸入該文件的路徑即可
測試執行速度:time ./hello //可以測試優化後的可執行文件的執行速度
Ubuntu 12.04嵌入式交叉編譯環境arm-linux-GCC搭建過程圖解 http://www.linuxidc.com/Linux/2013-06/85902.htm
Ubuntu 12.10安裝交叉編譯器arm-none-linux-gnueabi-GCC http://www.linuxidc.com/Linux/2013-03/82016.htm
Ubuntu下Vim+GCC+GDB安裝及使用 http://www.linuxidc.com/Linux/2013-01/78159.htm
Ubuntu下兩個GCC版本切換 http://www.linuxidc.com/Linux/2012-10/72284.htm
GCC 的詳細介紹:請點這裡
GCC 的下載地址:請點這裡