GCC編譯器和GDB調試器經常使用選項

http://blog.csdn.net/u014328976/article/details/46745349函數

 

GCC編譯器

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

 

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            //退出調試

相關文章
相關標籤/搜索