一般來說,make(1) 會在介紹 C (或 C++) 時一併介紹,但 make 其實不限於編譯 C (或 C++) 程式,而是一種通用的編譯自動化 繼續閱讀
Make 是編譯自動化軟體的濫觴,在類 Unix 系統上廣泛使用著。Make 有多個實作品,本系列文章介紹 GNU Make,這是一套普遍的 Make 實作品。
撰寫 Makefile 是開立新專案時需要的動作。但這是一項高度重覆的任務,故筆者基於這份教學,寫了 C 應用程式樣板專案和 C 函式庫樣板專案。這些樣板專案的目的在於減少重覆的 Makefile 撰寫。
筆者不使用 Autotools 的原因在於 Autotools 不適用於 Windows 系統;不用 CMake 是因為可以繼續使用 Make 的語法而不用重新學一套新的專案設定檔語言。
由於 make 是純命令列工具,本身沒有函式庫,使用 make 的前提是熟悉系統上的指令,因為 make 需要呼叫外部程式來滿足實際的功能。make 繼續閱讀
我們這裡展示一個初階的 (naive) Makefile,本例摘自筆者先前練資料結構的微型程式。在這裡,我們刻意地少用 繼續閱讀
在前文的例子中,我們將所有的指令都寫死在 Makefile 中,這樣的做法雖然直觀,但不一定是最方便的做法。例如,筆者所用的某個雲端環境有 繼續閱讀
在前文中,我們將 Makefile 參數化,通用性改善一些,但仍然有一些小缺失,像是 CC 寫死在 Makefile 中,每次要換編譯器時都要修改檔案;另外,CFLAGS 繼續閱讀
在先前的文章中,我們都假定專案使用者使用某種類 Unix 系統,但實際上專案有可能在 Windows 系統上編譯;因此,本文考慮跨平台的需求來撰寫 繼續閱讀
承接上一篇文章,我們在本文中為函式庫專案撰寫跨平台的 Makefile。藉由本文所提供的範例,我們可以直接用 GNU Make 製作跨平台函式庫專案 繼續閱讀
隨著專案變大,Makefile 長度也會逐漸拉長,若再加上跨平台的需求,設定檔會更加冗長。在一個專案中,make 繼續閱讀
在我們先前的文章中,我們大部分的 Makefile 僅用到變數代換和條件編譯兩項語法特性,其他的特性主要是來自於命令列工具本身。如果我們想要在 繼續閱讀
在 GNU Make 4.0 版之前,make 的程式語言相關的特性相對單薄,如果和 Rake 或 Gradle 等新興的編譯自動化軟體比起來更是如此。在 繼續閱讀