Scripting在小型項目中使用
在小型項目中使用 make
有什麼好處?
我已經看到這
make
對於大型項目很有用,尤其是對於 a 中描述的令人困惑的依賴項Makefile
,並且還有助於工作流。我還沒有聽說過make
用於小型項目的任何優勢。有嗎?
相對於什麼?
假設您有一個程序,您已將其拆分為兩個文件,您將其命名為
file1.c
和file2.c
. 您可以通過執行編譯程序cc file1.c file2.c -o yourprogram
但這需要每次都重新編譯這兩個文件,即使只有一個文件發生了變化。您可以將編譯步驟分解為
cc -c file1.c cc -c file2.c cc file1.o file2.o -o yourprogram
然後,當您編輯其中一個文件時,僅重新編譯該文件(並執行連結步驟,無論您更改了什麼)。但是,如果您編輯了一個文件,然後又編輯了另一個文件, 而您忘記了您同時編輯了這兩個文件,並且不小心只重新編譯了一個文件,該怎麼辦?
此外,即使只有兩個文件,您也有大約 60 個字元的命令。打字很快就會變得乏味。好的,當然,你可以把它們放到一個腳本中,但是你每次都要重新編譯。或者您可以編寫一個非常花哨、複雜的腳本來檢查哪些文件已被修改,並且只進行必要的編譯。你知道我要去哪裡嗎?
許多其他人正在研究更複雜的 makefile 的細節以及它們帶來的許多複雜性。我通常出於完全不同的原因使用 makefile:
我什麼都不想記住。
即使您的項目真的很無聊和簡單,並且您沒有“正確”使用 makefile:
all: gcc main.c -o project
與更複雜的項目相比,我不需要考慮或對待它:
all: gcc libA.c libB.c main.c -o project2
或者,如果我指定了標誌(例如
-O2
),我不需要記住它們是什麼。此外,如果您從一個簡單的 makefile 開始,並且您需要稍後合併/重構一些東西,您不需要記住以不同的方式建構每個項目。