前言今天我們要來繼續討論 Makefile,
我們來學習 Makefile 的常用變數 -「$@」, 「$^」
(使用時請輸入小寫,這邊因為會吃到語法,所以改用全形大寫。)
我們的今天的 Makefile這份檔案與上次的 Makefile 「功能」是完全相同的,
而我們要注意的是兩者不同的地方,「關於一些重複字詞的優化 」。
RM=rm
T=touch
otherfiles = myfile myotherfile
buildfiles = myfile2
all: $(buildfiles)
myfile:
$(T) $@
myotherfile: # @ = echo to target
$(T) $@
myfile2: $(otherfiles) # ^ = all dependency
cat $^ > $@
clean:
$(RM) $(buildfiles)
$(RM) $(otherfiles)
說明 – 「$@」, 「$^」與 day2 不同的是,這邊多使用了兩種特別的符號「$@」, 「$^」
「$@」, 「$^」是在 Makefile 裡面常見的符號,
我們可以透過這兩者分別取代以下說明的內容:
「$@」:取代 target 名稱,因為我們時常會讓 target 等同於要製作出的檔名,我們就會使用「$@」代替 「$^」:取代參數,這邊在 myfile2 為 target 時使用,
我們使用 「$^」代替了「$(otherfiles)」,這很像是我們一般寫程式碼時,引入變數的感覺,
我們就是使用這個符號,達到輸入變數的效果。 此外,在其他多參數的時候,「^」取代的是全部的 dependency,也就是所有做為參數的都會被參考到。
Reference⭐C++ 基礎用法 相關文章整理⭐: 1. 【C++】C++ compile 程式碼 使用 c++ 11 與使用相關的 package 2. 【C++】C/C++ 顯示資料的類別 (type) sample code (內含範例程式碼) print C data type, cout C++ data type, get variable type in c++ 3. 【C++】C++ 複製 2D array的方法 copy 2d array memcpy sample code (內含範例程式碼) ⭐Modern C++ ⭐: ⭐C++ 字串處理相關文章整理⭐: 1. 【C++】字串 char string stringstream 相關用法總整理 (內含範例程式碼) 與利用 sprinf, snprinf assign 值的方法 2. 【C++】字串 char string stringstream 「轉換」用法總整理 (內含範例程式碼) 3. 【C】printf, fprintf, sprintf, snprintf 相關用法總整理 (內含範例程式碼) 4. 【C++】C++ String 用法 連接兩個 String c++ string concat ⭐C++ 系統偵測相關文章整理⭐: 1. 【C++】C++ 利用 dirent.h 計算資料夾的檔案數量 count files sample code (內含範例程式碼) 2. 【C++】C++ inotify sample code 偵測指定路徑底下的文件變化 (內有範例程式碼) ⭐C++ OpenCV 相關文章整理⭐: 1. 【OpenCV】c++ OpenCV – 在 ubuntu 上第一次執行 OpenCV 程式 sample code (內含範例程式碼) 2. 【OpenCV】c++ OpenCV - 在圖片上寫上文字 cv::putText sample code (內含範例程式碼) 3. 【OpenCV】c++ OpenCV - cv::Rect 矩形用法與相關功能函數 sample code (內含範例程式碼) 4. 【OpenCV】c++ OpenCV - OpenCV 中的純量 定義顏色 cv::Scalar(255,255,255) color sample code (內含範例程式碼) 5. 【OpenCV】用 C++ 計算 iou 的方法 與網路算法常見錯誤(內附範例程式碼) sample code ⭐C++ Makefile 相關文章整理⭐: 1. 【C++ Makefile】- 1 / 嘗試撰寫自己的第一份 Makefile 2. 【C++ Makefile】- 2 / 新增自己的變數 3. 【C++ Makefile】- 3 / Makefile 常用變數 -「$@」, 「$^」 4. 【C++ Makefile】- 4 / Makefile 常用 fake target -「.PHONY」
5. 【C++ Makefile】- 5 / Makefile 內建變數 -「$@」, 「$^」, 「$<」, 「$* 」,「$? 」
⭐【喜歡我的文章嗎? 歡迎幫我按讚~ 讓基金會請創作者喝一杯咖啡! 】
如果喜歡我的文章,請幫我在下方【按五下Like 】 (Google, Facebook 免註冊 ),會由 「LikeCoin 」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢 」哦!