網(wǎng)站建設尺寸金華網(wǎng)站推廣
1.自動化構建-make/Makefile
1.1 認識make和Makefile
make是一個命令;
Makefile是一個文件。
?1.2 理解
其中在第一個圖片中,第一行的
mytest:test.c
?叫做依賴關系;第二行的
gcc test.c -o mytest
叫做依賴方法。
依賴關系和依賴方法共同形成目標文件Makefile。
1.3 具體語法
make 會自頂向下掃描Makefile文件,默認形成一個目標文件。
如果想要指定形成,make 后面跟一個指定名稱。?
?
那么偽目標的作用是什么呢?
在Linux中,偽目標所依賴的方法,總是可以被執(zhí)行的。?
?當Makefile中的內容是:
此時,只能執(zhí)行一次編譯,那么原因是什么呢?
主要原因是為了提高翻譯效率。
那么是怎樣判斷要不要重新編譯的呢?
?對比源文件與可執(zhí)行文件的修改時間。
在之前的博客中,我們提到,文件 = 內容 + 屬性
?
對其編譯之后,形成——
?形成了以 .c .i .o .s結尾的文件。
使用make clean指令,就可以將其清除掉。
1.4 推導過程
?(圖一)
?(圖二)
由圖一可知,指令是從上到下依次執(zhí)行的
(圖片來自于比特就業(yè)課)
?該圖片就解釋了圖一的過程。
根據(jù)上述,我們總結Makefile的推導原則——
將依賴方法不斷入棧,推導完畢,出棧執(zhí)行方法。
1.5 更加具有通用性的Makefile?
但是,我們一般不用這個來寫,因為其不具有通用性。
?該代碼比上一個更好,但是當源文件很多時,就不具有通用性。