make常用語法

2021-10-07 13:18:12 字數 1931 閱讀 6174

常用語法

一、make常見引數(目標)

二、makefile檔案及其語法規則

1.make如何工作

2.makefile檔案

3.makefile語法:

一、make常見引數(目標)

make all 編譯所有目標;

make -j8 使用8個核心編譯目標

make install 安裝已編譯的程式;

make uninstall 解除安裝已編譯的程式;

make clean 刪除由make命令產生的檔案,通常刪除目標檔案.o;

make check 測試剛編譯的軟體;

make dist 重新打包packname-version.tar.gz

二、makefile檔案及其語法規則

makefile檔案告訴make命令如何編譯和鏈結程式;

1.make如何工作

先在當前目錄下找「makefile」或「makefile」檔案,若找到就查詢檔案中第乙個目標檔案.o;

若目標檔案不存在,根據依賴關係查詢.s檔案;

若.s檔案不存在,根據依賴關係查詢.i檔案;

若.i檔案不存在,根據依賴關係查詢.c檔案;此時.c檔案一定存在,於是生成乙個.o檔案,再去執行;

2.makefile檔案

makefile檔案由一系列規則rules構成,每條規則形式如下:

: #冒號前為目標(必須的),冒號後為前置條件(可選的);

[tab] #由tab鍵起首,後接命令(可選); 前置條件和後接命令至少存在乙個;

#目標target:可以是檔名,指明make命令要構建的物件;也可以是某個操作的名稱(偽目標);12

3eg:

clear:

rm *.o #乙個例項,目標文clean,命令是rm *.o;執行make clean命令,實現物件檔案的刪除;12

前置條件prerequisites:前置條件通常由一組檔名,用空格隔開;指定目標是否構建的判斷標準;

eg:result.txt:source.txt

cp source.txt result.txt

#當前路徑下source.txt存在,make result.txt可正常執行;否則生成source.txt;12

3eg:

source.txt:

echo 「a source file.」 > source.txt

#沒有前置條件,只要該檔案不存在,每次指向make source.txt命令都會生成該檔案;12

3命令commands:表示如何更新目標檔案,由一行或多行shell命令組成;每一行命令前都要有乙個tab鍵;上行命令與下行無關;

3.makefile語法:

echoing 正常情況下,make列印每條命令,稱回聲;再命令前加@,關閉回聲,即只輸出命令的執行結果,出錯則停止執行;

% make命令允許對檔名進行類似正則運算的匹配,主要用到%;

( )調

用變數,

將變數名

放如

() 呼叫變數,將變數名放如

()呼叫變數

,將變數

名放如();

賦值運算子:

= 遞迴展開賦值; 可以使用後面的變數;

:= 直接賦值,不會遞迴展開; 使得前面的變數不呢個使用後面的變數;

?= 若未初始化,則賦值; 若初始化,則不會賦值;

+= 將值追加到現有內容末尾;

判斷語句:

《條件語句》

《條件為真,指向程式段》

else

《執行內容》

endif

ifeq比較兩個引數值是否相等; ifneq比較兩個引數值是否不等; ifdef判斷變數是否有值; ifndef判斷變數是否無值;

迴圈:all目標後的命令是shell命令,引用shell變數需使用$$作為開頭,

————————————————

make常用語法

1 變數 1.1 遞迴展開式變數 foo b ar b ar ba r ba r ugh ugh huh?all echo f oo 替 換過程 首先 fo o 替換 過程 首 先 foo 被替換為 b ar 接下來 ba r 接下來 bar 被替換為 u gh 最後 ug h 最後 ugh 被替換...

mysql常用語法 MySQL常用語法

更新資料 update 表名 set 健名 更改的值 where 建 刪除資料 delete from 表名 where 索引 create index 索引名稱 on 表名 鍵名 建立試圖 create view 檢視名 鍵,鍵 as select matchno,abs won lost fro...

mysql基本常用語法 mysql 常用語法

1.1.開啟 service mysql start 1.2.關閉 service mysql stop 1.3.重啟 service mysql restart 2.1.密碼明文 語法 mysql u使用者名稱 p使用者密碼 舉例 mysql uroot p123456 2.2.密碼密文 語法 m...