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...