學習筆記一之程式設計基礎

2021-06-14 03:53:31 字數 2152 閱讀 8874

-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碼識別符號也是允許的。...