makefile概述
makefile是指定工程編譯規則的程式。就像乙個shell指令碼一樣,也可以執行作業系統的命令。
自動化編譯:寫好makefile程式後,只需乙個make命令,完全自動編譯。make是乙個解釋makefile中指令的命令工具。
makefile語法:由若干條規則組成,每條規則的語法結構:
target ... : prerequisites ...
command ... ...
每條規則由依賴關係和命令兩部分組成。
target是目標檔案,還可以是乙個標籤(label),prerequisites(前提,先決條件))就是要生成那個target所需要的檔案或是目標。command也就是make需要執行的命令。(任意的shell命令)
make命令語法:make [選項][目標] ]
功能:建立指定目標,如果沒指定目標,建立第乙個目標。make預設的規則定義檔案是gnumakefile、makefile或makefile,否則使用-f指定檔案。
常用選項:
-f file 指定規則檔案
-c dir 讀取規則檔案前進入指定目錄dir
多檔案makefile的更新原理(基於時間):
makefile變數
1)自定義變數:將字串賦給變數名,在makefile變數無資料型別。
語法:變數名=字串
引用:$(變數名)
2)環境變數:make在執行過程中將環境變數轉換為同名同值的make變數,使用者也可在makefile中對這些變數進行重新定義。
3)預定義變數:
4)自動變數:
makefile中的函式(都是有返回值)
1)wildcard 查詢當前目錄下所有.c檔案,返回值給src。
src =$ (wildcard ./*.c)
2)patsubst 替換所有.c檔案為.o檔案。
obj=$(patsubst ./%.c, ./%.o, $(src))
make clean:
清除上次的make命令所產生的object檔案(字尾為「.o」的檔案)及可執行檔案。
例子:
Linux學習心得
一 首先我分享一下我對linux學習過程的幾篇部落格 1.通過反編譯乙個簡單的c程式,解釋堆疊的變化 2.乙個精簡的linux核心分析 3.跟蹤分析乙個簡單的linux核心的執行 4.分析乙個api的呼叫機制 5.分析linux核心建立乙個新程序的過程 6.linux核心如何裝載和啟動乙個可執行程式...
linux學習心得
在使用linux系統時,如要利用一些終端服務。都需要開啟linux中的相應伺服器。其中可以利用chkconfig list 或 chkconfig list more命令檢視服務是否起動。如檢視ftp服務 可用chkconfig list grep vsftpd 如果其狀態是關閉的,就要用chkco...
Linux學習心得
說起linux,就難免讓人想起windows 但反過來,談起windows,卻不一定會讓人想起linux,可見linux還有很長的一段路要走 基本上都會將linux與windows放到一起來比較,比如哪個系統操作更方便,哪個系統更加安全,哪個系統使用更加高效等等。拿桌面端來講,自然是windows系...