嵌入式課程拓展 第四周

2021-10-04 07:56:43 字數 1125 閱讀 2886

1.makefile

gnu make的工作分為兩個階段。在第一階段,make讀取makefile檔案、內建變數及其值、隱含規則和具體規則、構造所有目標的依賴關係以及所有目標各自的依賴等。在第二階段,make決定需要重新構造的目標並使用必要的規則進行工作。

make工作第一階段發生的擴充套件是立即擴充套件,直接把變數和函式擴充套件為makefile檔案語句的一部分。make工作第二階段發生的擴充套件稱為延時擴充套件。

2. makefile命令的使用

-cdir :在讀入makefile之前,把路徑切換到dir下。如果同時使用幾個『-c』選項,則eachis interpreted relative to the previous one。

-d :在正常處理後列印除錯資訊。

-e :設定環境變數的優先權高於makefile檔案變數的優先權。

-ffile :將file設定為makefile檔案。

-i :忽略在執行重建檔案命令時產生的所有錯誤。

-idir :指定搜尋makefile檔案的路徑。如果同時使用幾個『-i』選項,則按照次序搜尋這些路徑。

-k :在出現錯誤後,盡可能的繼續執行。也就是說當乙個目標建立失敗後,所有依靠它的目標檔案將不能重建,而這些目標的其它依賴則可繼續處理。

-n :列印要執行的命令,但卻不執行它們。

-ofile :即使檔案file比它的依賴舊,也不重建該檔案。

-p :列印資料庫,其中的資料來自讀入makefile檔案的結果;列印之後執行。

make –qp 列印資料庫後不執行。

make –p –f/dev/null 列印預定義的規則和變數的資料庫。

-q :不列印也不執行命令。如果所有目標都已經更新到最新,make的退出狀態是0;如果一部分需要更新,退出狀態是1;如果make遇到錯誤,退出狀態是2。

-r :禁止使用預定義的隱含規則,同時也清除了預設的字尾列表和字尾規則。注意預設的變數仍然有效。

-r :禁止使用內建的規則變數。『-r』自動使『-r』生效。

-s :不回顯執行的命令。

-s :使『-k』失效。除非在遞迴呼叫make時,通過變數makeflags從上層make繼承『-k』,或環境中設定了選項『-k』,否則沒有必要使用該選項。

-t :標記檔案已經更新到最新,但實際卻沒有更新它們。

嵌入式課程拓展(三)

靜態鏈結庫檔案 static表示的是編譯的時候禁止呼叫動態庫,此時就是說完全編譯出的東西是比較大的 gdb的功能 l 設定斷點 l 監視程式變數的值 l 程式的單步執行 l 顯示 修改變數的值 l 顯示 修改暫存器 l 檢視程式的堆疊情況 l 遠端除錯 gdb除錯過程 1 程式經過預處理後,即進入編...

嵌入式第四周課堂總結

偵錯程式 gdb 1.gnu計畫的工具 核心除錯kgdb 2.程式的錯誤分類 編譯時錯誤 語法錯誤 執行時錯誤 記憶體錯誤,邏輯錯誤 3.gdb的功能 1執行程式 2設定斷點 3檢視變數值 4.hello.c gcc g hello.c o hello gcc gdb 5.使用 tui layout...

嵌入式作業系統基礎第四周總結

偵錯程式 gdb 三大特點 啟動被除錯的程式 設定斷點 單步執行 檢視變數的值 除錯步驟 gcc g sum.c o sum gdb sum 操作 quit退出gdb list顯示 檢視源 gdb 可執行檔案 tui layout split c語言和組合語言同時看,每行 對應彙編 layout a...