gcc編譯器
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 hello.c -o hello.o #將hello.c 轉換成二進位制檔案 hello.o
gcc -i dir hello.c -o hello # -i 後面加路徑,指定在dir路徑下尋找標頭檔案
gcc -wall hello.c -o hello #顯示編譯過程中所有的警告資訊
gcc -g hello.c -o hello #帶除錯資訊的程式,可以用gdb進行除錯
gcc -v hello.c -o hello #顯示執行編譯階段的命令.同時顯示編譯器驅動程式,預處理器,編譯器的版本號
gcc -nostdinc -i dir hello.c -o hello #不要在標準系統目錄中尋找標頭檔案.只搜尋`-i'選項指定的目錄(以及當前目錄)
編譯靜態鏈結庫
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 #生成動態鏈結庫
gcc cxd.c -o cxd -l /root/desktop/hello.so #呼叫自己的動態鏈結庫
gdb偵錯程式
注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 //退出除錯
GCC編譯器和GDB偵錯程式
gcc gnu compiler collection 是目前linux下最常用的c語言編譯器,它是gnu專案中符合ansi c標準的編譯系統,可以在多種硬體平台上編譯出可執行程式的超級編譯器,執行效率與一般的編譯器相比平均效率要高20 30 在終端中輸入下列命令 gcc options filen...
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...