make
make是Linux下的程式維護工具,能夠檢查檔案是否有變動再進行編譯,加速編譯時間,並通過讀取makefile來決定執行哪些步驟產生目標檔案。makefile用來描述如何建立程式。
makefile
makefile是用來告訴make指令該如何執行的檔案,因此由許多的規則組成,寫法如下:
<target> : <prerequisites>
[tab] <commands>
# 這邊須注意commands前面是tab,不是space
target
一個target就是一個規則,通常會是檔案名稱,或是當作一串指令的代稱(phony target)。
RUN:
go run .
.PHONY: RUN
用.phony聲明RUN是偽目標後,make不會檢查是否有檔案名稱叫做RUN,因此每次下指令make run
時都會執行go run .
prerequisites
先決條件或稱前置條件,通常是用空格分隔的檔案名稱,make在執行時會先檢查prerequisites內的檔案是否存在,或是否有更改內容,如果不存在或更改過內容就會執行此target。
a.txt: b.txt
cp b.txt a.txt
在上訴指令中,我們可以看到a.txt的先決條件是b.txt,此時如果b.txt不存在,make會繼續檢查makefile中是否有指令會生成b.txt
b.txt: c.txt
cp c.txt b.txt
當他發現生成b.txt的target中還有一個先決條件是c.txt,make會繼續檢查是否有c.txt的target,直到他找到的最後一個target沒有prerequisites。
commands
宣告如何更新文件,由shell命令組成。
除此之外make還有許多十分有用的功能,若能善用make指令可大幅幫助開發過程,惟因我目前只使用來當作指令縮寫,因此沒有更深入研究。
make install in windows
搜尋MinGW-get
安裝完成後將C:\MinGW\bin
加入環境變數,安裝完成後在terminal輸入mingw-get
會跳出下圖
接著輸入mingw-get install mingw32-make
,下載完成後進入C:\MinGW\bin
資料夾並將mingw32-make.exe
改成make.exe
,完成後即可使用make指令。
參考資料:
make命令教程
How to Setup Makefiles on Windows - C/C++ Compilation