gcc(gnu compiler collection) 是目前linux下最常用的c語言編譯器,它是gnu專案中符合ansi c標準的編譯系統,可以在多種硬體平台上編譯出可執行程式的超級編譯器,執行效率與一般的編譯器相比平均效率要高20%~30%。
在終端中輸入下列命令:
gcc options filename
其中,filename為要操作的*.c檔案,options是編譯器所需要的引數,有以下幾個:
//檔名為test.c,存放在home/sywyg/test中
//生成的可執行檔案為test,存放在同一目錄下
#include
void bubblesort(int *data,int
count)}}
}int main()
; bubblesort(data,9);
for(i=0;i<9;i++)
printf("\n");
return
0;}
執行過程如圖1:
圖1gcc編譯過程
使用gdb除錯程式時,首先gdb需要獲得程式的資訊,因此需在編譯是使用引數-g。編譯命令如下:
gcc -g
-o 可執行檔名(test) 源程式檔名(test.c)
接著可以使用下列命令載入可執行檔案進行除錯:
gdb 可執行檔名(test)
同樣以上面的c程式舉例,上述命令如圖2。
圖2gdb除錯1
此時進入到gdb除錯工具中,gdb有以下常見命令:
1.
break i //表示在第i行設定斷點
2.break
function
() //表示在進入函式function
()處設定斷點
3.break i/function
() if a //表示滿足條件a時執行到i/function
()設定斷點
在斷點後可使用continue命令執行斷點後的程式,直到遇到下一次特殊情況。 gcc編譯器和gdb偵錯程式
將高階語言 c語言 程式編譯成為機器可識別的指令 編譯過程 預處理 去掉注釋,展開所有 編譯 語義 語法糾錯,將 解釋成為彙編 彙編 將彙編 解釋成為機器指令 連線 鏈結 庫以及所有的目標檔案,生成可執行程式 庫檔案 大佬實現一些常用的功能介面,為了防止每次編譯耗費大量時間,因此將這些介面 進行編譯...
GCC編譯器和GDB偵錯程式常用選項
gcc hello.c o hello 將hello.c編譯成hello可執行檔案 gcc e hello.c o hello.i 將hello.c 轉換成預處理後的檔案hello.i gcc s hello.c o hello.s 將hello.c 轉換成彙編檔案 hello.s gcc c he...
GCC編譯器和GDB偵錯程式常用選項
gcc hello.c o hello 將hello.c編譯成hello可執行檔案 gcc e hello.c o hello.i 將hello.c 轉換成預處理後的檔案hello.i gcc s hello.c o hello.s 將hello.c 轉換成彙編檔案 hello.s gcc c he...