安裝:
yum install gcc gcc-c++
linux gcc/g++編譯器與偵錯程式
gcc/g++編譯選項
在 linux 系統中,使用者建立程序時會先在系統的程序表中為程序建立獨一無二的編碼,即 pid。 pid 是乙個正整數,其取值範圍是 2~32768。程序建立時會順序挑選下乙個未使用的編號數字作為自己的 pid。如果它們已經經過一圈的迴圈,新的編碼將重新從 2 開始。數字 1 一般是為特殊程序 init 保留的,它負責管理其他的程序。例如,執行下列命令會顯示系統內的所有程序。
ps -e
ansi c 標準
c 語言設計的程式是由函式所組成的,在函式被詳細定義前,可先在標頭檔案定義函式原型,這樣函式間可更容易地相互呼叫。標頭檔案包含了許多 linux 系統服務的函式原型,例如 read()、 write()和 getpid()函式,它們的原型如下:
函式原型由函式的返回型別、函式名和引數 3 部分組成。
類屬指標
類屬指標是一種能夠同時支援所有資料型別的指標。函式原型中常用的「 void *」型別即是類屬指標。 ansi c 標準常用類屬指標代替函式引數中的其他指標,使同乙個函式能支援多種資料型別。
原始系統資料型別
在函式原型中以「 _t」結尾的型別被稱為原始系統資料型別。原始系統資料型別定義在標頭檔案 sys/types.h 中,以 typedef 操作符加以定義。
標準c程式結構
#include 注意和c++的區別
int main(){
return 0;
gdb 偵錯程式
gdb 常用除錯命令
gcc -g -o helloworld helloworld.c //編譯並連線程式,使之包含可被除錯資訊
gdb helloworld //使用 gdb 偵錯程式開啟 helloworld 可執行檔案
常用gdb命令及解釋
可在為變數賦值前加入斷點,並執行程式
break 5
run檢查資料:
在程式中加入斷點後,程式執行時會在斷點處暫時停止,以便檢查程式中的資料。通過檢查資料可判斷出許多種錯誤的所在。 helloworld 程式在第 5 行加入了斷點,這時第 5行的**並未執行。檢查變數 c 的值可輸入如下命令:
(gdb) print c //顯示變數 c 的值
命令執行後可見輸出結果為:
$1 = 0x4e54eff4 "|\355tnv~;n"
該結果表明變數 c 所指向的位址為 0x4e54eff4。繼續執行程式,使用單步執行方式,再檢查變數 c 的值,輸入下列命令:
(gdb) next //單步執行程式
(gdb) print c //顯示變數 c 的值
執行後可見輸出結果為:
$2 = 0x80484c4 "hello world!"
表明變數 c 指向了位址 0x80484c4,該位址的內容轉換為 ascii 碼的結果為 helloworld!。如果還要繼續執行程式,輸入 continue 命令將執行到下乙個斷點或者程式結束。
Linux gcc g 編譯器的使用
編譯器編譯過程要經歷四個階段 1.預處理 進行巨集替換 e 2.編譯 生成彙編 s 3.彙編 生成機器可識別 c 4.連線 生成可執行檔案或庫檔案 o 預處理 進行巨集替換 編譯 生成彙編 彙編 生成機器可識別 連線 生成可執行檔案或庫檔案 函式庫一般分為靜態庫和動態庫兩種 gdb是除錯乙個程式的執...
Linux gcc g 編譯器使用
1.首先應會設定幾個好用的環境變數 cplus include path cplus include path home test include 此環境變數用來設定標頭檔案包含路徑,這樣就不用編譯的時候新增路徑咯 ld library path ld library path home test ...
編譯器 偵錯程式
linux mac下使用的編譯器是不同的。linux下使用的是gcc編譯器。mac下使用的是clang編譯器。命令格式都是相通的。編譯命令的基本格式 g會在輸出檔案裡可以增加除錯資訊,編譯出的程式在執行過程 現的問題就可以用偵錯程式進行單步除錯。o實際是指令優化的級別。預設 o1是不對指令優化,所以...