● makefile檔案
make是乙個命令,makefile是乙個檔案。
make命令執行時,需要乙個 makefile 檔案,以告訴make命令需要怎麼樣的去編譯和鏈結程式。乙個工程中的原始檔不計數,其按型別、功能、模組分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新編譯,甚至於進行更複雜的功能操作,因為makefile就像乙個shell指令碼一樣,其中也可以執行作業系統的命令。makefile 帶來的好處就是------「自動化編譯」,一旦寫好,只需要乙個make命令,整個工程完全自動編譯,極大的
提高了軟體開發的效率。
下面進行具體說明。
1、建立test.h、test.c和main.c檔案
2、如果不建立makefile檔案,我們就需要依次進行編譯鏈結
3、編寫makefile檔案
一旦改變了某一檔案的程式,就需要重新進行上述操作,太過繁瑣,於是我們建立makefile檔案進行自動化編譯,包括自動清除所有編譯結果。
注:在依賴方法那行,一定要以tab鍵開頭。
「.phony」表示,clear是個偽目標檔案。
● make的工作原理
在預設的方式下,也就是我們只輸入make命令,那麼make會進行以下步驟。
1、make會在當前目錄下找名字叫「makefile」或「makefile」的檔案。
2、如果找到,它會找檔案中的第乙個目標檔案(target),在上面的例子中,他會找到「edit」這個檔案,並把這個檔案作為最終的目標檔案。
3、如果edit檔案不存在,或是edit所依賴的後面的 .o 檔案的檔案修改時間要比edit這個檔案新,那麼,他就會執行後面所定義的命令來生成edit這個檔案。
4、如果edit所依賴的.o檔案也不存在,那麼make會在當前檔案中找目標為.o檔案的依賴性,如果找到則再根據那乙個規則生成.o檔案。(這有點像乙個堆疊的過程)
5、當然,你的c檔案和h檔案是存在的啦,於是make會生成 .o 檔案,然後再用 .o 檔案生命make的終極任務,也就是執行檔案edit了。
這就是整個make的依賴性,make會一層又一層地去找檔案的依賴關係,直到最終編譯出第乙個目標檔案。
make是怎樣工作的
預設情況下,我們輸入make命令,那麼 當然你可以指定檔名,make f filename 1.make會去當前目錄下尋找叫makefile或叫makefile的檔案。2.然後讀入makefile檔案裡面內容,找到第乙個目標的檔案並把它作為最終要生成的目標,故第乙個目標是預設目標。4.然後再尋找當前...
make 是如何工作的
在預設的方式下,也就是我們只輸入 make 命令。那麼,make 會在當前目錄下找名字叫 makefile 或 makefile 的檔案。如果找到,它會找檔案中的第乙個目標檔案 target 在上面的例子中,他會找到 edit 這個文 件,並把這個檔案作為最終的目標檔案。如果 edit 檔案不存在,...
make 是如何工作的
edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o cc o edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o我們...