Makefile


Posted by Ckoala on 2023-02-07

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


#study-notes







Related Posts

619. Biggest Single Number

619. Biggest Single Number

MTR04_0807

MTR04_0807

認知機器人研究資源整理

認知機器人研究資源整理


Comments