2020 3 17課堂筆記

2021-10-04 01:19:05 字數 1534 閱讀 7207

偵錯程式:gdb

1.gnu計畫的工具;核心除錯kgdb

2.程式的錯誤分類:編譯時錯誤:語法錯誤 執行時錯誤:記憶體錯誤,邏輯錯誤

3.gdb的功能:1執行程式;2設定斷點;3檢視變數值

4.hello.c gcc -g hello.c -o hello

gcc gdb

5.使用

–tui:

layout asm

layout src

layout split

(run finish continue)

斷點(break +行號

break+函式名

break+行號 if條件

info break

delete+break)

(enable +斷點編號

disable+斷點編號)

單步執行:step next

工程管理器:make(-make -cmake)—實現自動編譯(根據makefile實現)

編譯很多個檔案(型別不同、存放不再不同目錄、資源檔案使用)組成的軟體**結構 --實現自動編譯(根據makefile檔案的內容進行)。

「自動編譯」:

(1)根據makefile檔案的內容進行自動編譯;

(2)根據檔案的時間戳來判斷檔案是否需要編。

單個.c — gcc hello.c -o hello;

10000個.c (分別儲存在100個不同目錄) – gcc *.c -o hello。

2、make讀取makefile內容(如何編寫makefile檔案?)

(1)makefile是個指令碼檔案(批處理)

(2)makefile語法: 目標、依賴、命令

格式:目標:依賴、按下tab命令。

(3)執行命令,依賴這個檔案,最終生成目標。

(4)makefile執行順序:自上向下,當你的目標依賴的檔案又是有乙個目標時,會先跳轉到該目標去執行相關命令。

(5)make +目標名:從該目標開始自.上向下執行。

(6)偽目標:執行命令,不生成對應的檔案。phony: lclean install。

3、為什麼將.c檔案先編譯生成.o檔案,再由.o檔案生成可執行檔案?

前提:原始檔到可執行檔案:預處理、編譯、彙編、鏈結(1s)

gcc hello.c -0 hello 4s

cal:main.c add.c sub.c div.c mul.c

gcc *.c -0 cal

假設修改了add.c — make: 20s

假設修改了add.c — make:(.c -->.0) 第一次:20s,第二次:4s+4s=8s。

4、功能目錄管理軟體**:

makefile:(閱讀makefile的順序1-3)

2.總控makefile:進入各個功能目錄執行make,並將所有.o檔案鏈結生成可執行檔案。

3.功能目錄makefile:將功能目錄下的原始檔編譯生成目標檔案.o。

1.scripts目錄標頭檔案makefile:定義變數,供其他makefile使用。

指令碼程式設計-shell

9 1課堂筆記

課堂筆記 一 1 file類的構造方法 public file string pathname 根據parent抽象的路徑名和child路徑名字串建立乙個新的file物件。pathname指路徑名字串,parent父抽象路徑名 父抽象路徑名既可以是字串,也可以是file物件 public file ...

9 7課堂筆記

課堂筆記 執行緒的同步 為什麼需要 執行緒同步 執行緒間共享 和資料可以節省系統開銷,提高程式執行效率,但同時也導致了資料的 訪問衝突 問題,如何實現執行緒間的有機互動 並確保共享資源在某些關鍵時段只能被乙個執行緒訪問,即所謂的 執行緒同步 synchronization 就變得至關重要。臨界資源 ...

2018 3 8課堂筆記

選擇器的優先級別可以如下方式計算 a 行內樣式權重1000,b id選擇器權重100 c 類 偽類和屬性選擇器權重10,d 標籤選擇器和偽元素選擇器權重為1 對於網頁中背景的修改 都是以background開頭的,例如 background position背景的定位 background size...