-c:只編譯,不連線成為可執行檔案,編譯器只是由輸入的.c等源**檔案生成.o為字尾的目標檔案。
-g:產生除錯工具(gnu的gdb)所必要的符號資訊,要想對編譯出的程式進行除錯,就必須加入這個選項。
-o,對程式進行優化編譯、鏈結.
例gcc –o optimize.c -o optimize
time ./optimize
time顯示時間
gcc –static hello.c -o hello
補充:
gcc -d 編譯時定義巨集/巨集定義(使用者程式中的巨集)2023年04月19日 星期六 16:05-d name, predefine name as a macro, with definition 1.(給所編譯檔案定義乙個巨集其值為1)
# vi test.c
---------------------------------
#include
#define add(x, y) (x) + (y) + 10
#undef add
#define add(x, y) (x) + (y)
#undef pdebug /* undef it, just in case */
#ifdef debug
#define pdebug(fmt, args...) printf("cmmb_inno: line %d - %s():"fmt, __line__, __function__, ##args)
#else
#define pdebug(fmt, args...)
#endif
int main()
--------------------------------
# gcc test.c -d debug
# ./a.out
cmmb_inno: line 16 - main():zengxl and luol
10 + 8 = 18
# gcc test.c
# ./a.out
10 + 8 = 18
1.編譯生成可執行檔案:
gcc -g tst.c -o tst
2.啟動gdb
gdb tst
3. 在main函式處設定斷點
break main
4. 執行程式
run
5. 單步執行
next
6. 繼續執行
continue
list(l) 檢視程式
break(b) 函式名在某函式入口處新增斷點
break(b) 行號在指定行新增斷點
break(b) 檔名:行號在指定檔案的指定行添
加斷點break(b) 行號if 條件當條件為真時,指定行號
處斷點生效,例b 5 if i=10,當i等於10時第5行
斷點生效
info break 檢視所有設定的斷點
delete 斷點編號刪除斷點
run(r) 開始執行程式
next(n) 單步執行程式(不進入子函式)
step(s) 單步執行程式(進入子函式)
continue(c) 繼續執行程式
print(p) 變數名檢視指定變數值
finish 執行程式,直到當前函式結束
watch 變數名對指定變數進行監控
quit(q) 退出gdb
make來構建和管理自己的軟體工程。gnu 的make能夠使整個軟體工程的編譯、鏈結只需要乙個命令就可以完成。
make在執行時, 需要乙個命名為makefile的檔案。makefile檔案描述了整個工程的編譯,連線等規則。其中包括:工程中的哪些原始檔需要編譯以及如何編譯;需要建立那些庫檔案以及如何建立這些庫檔案、如何最後產生我們想要得可執行檔案。
規則:用於說明如何生成乙個或多個目標檔案,
規則格式如下:
targets : prerequisites
command
目標依賴命令
main.o : main.c
gcc –c main.c
變數obj=main.o func1.o func2.o func3.o
hello: $(obj)
gcc $(obj) -o hello
Linux學習筆記之shell程式設計(基礎命令)
目錄 環境變數 位置變數 預定義變數 自定義變數 算數運算 內建測試判斷 成功 成立 1 失敗 不成立 0 數值比較 字串測試 檔案測試 date 取字串 find 查詢檔案 使用者環境變數 root bash profile 系統環境變數 etc profile 通常和指令碼聯合使用 0 指令碼名...
《Python學習筆記》階段一之基礎學習
1.注釋 或者 或者 2.輸出函式print 3.塊。用冒號作為開始,具有相同縮排的 縮排需要相同型別,tab和空格 4個 不一樣 if 5 5 print print if false print print 沒有花括號,以冒號開始,以縮排劃分 print 4.變數 宣告變數的三種方式 a fan...
Python學習筆記一之基礎語法
python是一種解釋性 意味著開發過程沒有編譯環節,相對於編譯性語言而言 物件導向 動態資料型別的高階程式語言。識別符號 第乙個字元必須是字母表中的字母或下劃線 識別符號的其它部分由字母 數字和下劃線組成。識別符號區分大小寫。python3允許使用中文作為變數名,非ascii碼識別符號也是允許的。...