http://blog.csdn.net/u014328976/article/details/46745349函數
gcc hello.c -o hello #將hello.c編譯成hello可執行文件ui
gcc -E hello.c -o hello.i #將hello.c 轉換成預處理後的文件hello.i
gcc -S hello.c -o hello.S #將hello.c 轉換成彙編文件 hello.S
gcc -c hello.c -o hello.o #將hello.c 轉換成二進制文件 hello.o
gcc -I dir hello.c -o hello # -I 後面加路徑,指定在dir路徑下尋找頭文件spa
gcc -Wall hello.c -o hello #顯示編譯過程當中全部的警告信息.net
gcc -g hello.c -o hello #帶調試信息的程序,能夠用GDB進行調試調試
gcc -v hello.c -o hello #顯示執行編譯階段的命令.同時顯示編譯器驅動程序,預處理器,編譯器的版本號
gcc -nostdinc -I dir hello.c -o hello #不要在標準系統目錄中尋找頭文件.只搜索`-I'選項指定的目錄(以及當前目錄)blog
編譯靜態連接庫
gcc -c hello.c -o hello.o #先生成目標文件 .o
ar crv hello.a hello.o #打包爲 .a 的靜態連接庫文件
gcc cxd.c -o cxd -L /root/desktop/hello.a #調用本身的靜態連接庫
編譯動態連接庫
gcc -fPIC -c hello.c #編譯成位置無關的 .o 文件編譯器
gcc -shared hello.o -o hello.so #生成動態連接庫it
gcc cxd.c -o cxd -L /root/desktop/hello.so #調用本身的動態連接庫io
注1:須要調試的程序在編譯的時候要加 -g 選項,程序才能進行調試編譯
注2:如下全部命令均可以簡寫首字母,例:info break ==> i b 除特殊聲明外
#gdb program //進入調試模式
#list file.c:fanction //顯示file.c文件中的fanction函數
#break file.c:fanction //在file.c文件中的fanction函數處打一個斷點
#break file.c:100 //在file.c文件中的第100行打一個斷點
#info break //查看全部斷點
#delete break num //刪除斷點號爲 num 的斷點
#run //開始運行程序
#bt //顯示程序的棧
#watch expr //監視 expr 變量,(每次運行到變量處就會打印變量的值)(watch 不能簡寫)
#print expr //打印處 expr 變量的值,(當前運行函數中的變量)
#c //繼續運行程序
#next //單步運行
#quit //退出調試