Makefile管理多個模組的專案
阿新 • • 發佈:2019-01-27
多個模組的工程,如何用makefile管理,方便上線
比如目錄結構如下
_____
| src |
-----
| _______
|---|common|
| -------
| _____
|---|app1|
| -----
| _____
|---|app2|
| -----
| _____
|---|app3|
為了上線方便,需要能用一個指令就把app1,app2,app3三個應用程式都build好,初步想法是這樣
1.在根目錄建立mk.incl檔案,寫入一些環境變數定義等公共部分
2.在common app1 app2 app3四個目錄下都建立一個makefile檔案,common生成.o檔案,其他的生成應用程式.他們都會用include指令包含mk.incl檔案中的內容.
3.在根目錄下建立makefile目錄,可以先呼叫common目錄下的makefike,然後呼叫app1 app2 app3中的makefile生成三個應用程式.
_____
| src |
-----
| _______
|---|common|----makefile
| -------
| _____
|---|app1|---makefile
| -----
| _____
|---|app2|---makefile
| -----
| _____
|---|app3|---makefile
| -----
|
|---mk.incl
比如目錄結構如下
_____
| src |
-----
| _______
|---|common|
| -------
| _____
|---|app1|
| -----
| _____
|---|app2|
| -----
| _____
|---|app3|
-----
怎麼用makefile管理多個模組的專案:
(1)、其中common目錄下是一些公共的.h 和 .cpp檔案, app1,app2,app3目錄是互不相干的三個應用模組,都include到common中的檔案.為了上線方便,需要能用一個指令就把app1,app2,app3三個應用程式都build好,初步想法是這樣
1.在根目錄建立mk.incl檔案,寫入一些環境變數定義等公共部分
2.在common app1 app2 app3四個目錄下都建立一個makefile檔案,common生成.o檔案,其他的生成應用程式.他們都會用include指令包含mk.incl檔案中的內容.
3.在根目錄下建立makefile目錄,可以先呼叫common目錄下的makefike,然後呼叫app1 app2 app3中的makefile生成三個應用程式.
_____
| src |
-----
| _______
|---|common|----makefile
| -------
| _____
|---|app1|---makefile
| -----
| _____
|---|app2|---makefile
| -----
| _____
|---|app3|---makefile
| -----
|
|---mk.incl
|---makefile
即使用多個makefile來管理不同的模組,每個模組都使用一個makefile進行管理。
(2)、
1。可以考慮將comm目錄下的程式生成一個靜態庫
2。環境變數的定義統一寫入.profile檔案中
3。在src目錄下生成一個makefile檔案包含需要關聯的目錄
4。app1,app2,app3目錄中的makefile均呼叫comm靜態庫產生各自執行檔案
(3)、使用 GNU build system,也稱之為Autotools。
來源:http://bbs.chinaunix.net/thread-860299-1-1.html