MAKE 巢狀執行make

2021-06-16 21:01:55 字數 560 閱讀 3710

在一些大的工程中,我們會把我們不同模組或是不同功能的原始檔放在不同的目錄中,我們可以在每個目錄中都書寫乙個該目錄的makefile,這有利於讓我們的makefile變得更加地簡潔,而不至於把所有的東西全部寫在乙個makefile中,這樣會很難維護我們的makefile,這個技術對於我們模組編譯和分段編譯有著非常大的好處。

例如,我們有乙個子目錄叫subdir,這個目錄下有個makefile檔案,來指明了這個目錄下檔案的編譯規則。那麼我們總控的makefile可以這樣書寫:

subsystem:

cd subdir && $(make)

其等價於:

subsystem:

$(make) -c subdir

定義$(make)巨集變數的意思是,也許我們的make需要一些引數,所以定義成乙個變數比較利於維護。這兩個例子的意思都是先進入「subdir」目錄,然後執行make命令。

我們把這個makefile叫做「總控makefile」,總控makefile的變數可以傳遞到下級的makefile中(如果你顯示的宣告),但是不會覆蓋下層的makefile中所定義的變數,除非指定了「-e」引數。

make的執行過程

make 的執行過程如下 1.依次讀取變數 makefiles 定義的 makefile 檔案列表 2.讀取工作目錄下的 makefile 檔案 根據命名的查詢順序 gnumakefile makefile makefile 首先找到那個就讀取那個 3.依次讀取工作目錄 makefile 檔案中使用...

make的執行流程

make 的執行過程如下 1.依次讀取變數 makefiles 定義的 makefile 檔案列表 2.讀取工作目錄下的 makefile 檔案 根據命名的查詢順序 gnumakefile makefile makefile 首先找到那個就讀取那個 3.依次讀取工作目錄 makefile 檔案中使用...

PHP編譯,執行make報錯

編譯安裝php 的時候,執行make報錯誤 make ext phar phar.php 錯誤 127 root localhost php 5.4.9 mkdir usr local webserver mysql include mysql root localhost php 5.4.9 ln...