想象我有這樣的:是否支持這種流程?
PROJECT1 := /path/to/first
PROJECT2 := /path/to/second
PROJECT3 := /path/to/third
我做一個查找從裏面他們收集所有c,cpp,h
文件。我有類似:
PROJECT1_CPP := $(shell find $(PROJECT1) -name "*.cpp" -type "f")
PROJECT1_C := ... (the same happens for PROJECT2 and PROJECT3)
現在,我可以添加目標爲他們每個人都喜歡:
project1.lib: $(PROJECT1_OBJS)
...
project2.lib: $(PROJECT2_OBJS)
...
project3.lib: $(PROJECT3_OBJS)
...
這種方法的事情是:有很多的重複代碼(所有的動作爲所有的構建幾乎相同)。我希望能夠做一些更通用的,如:
PROJECTS := /path/to/first
PROJECTS += /path/to/second
PROJECTS += /path/to/third
然後以某種方式遍歷它們並構建它們。事情是這樣的僞代碼:
foreach project in PROJECTS
gather C/C++ files
build them
link them
link everything together
你能不能給我任何指標,讓我應該開始?在Make中這甚至可能嗎?
所有這些都可以完成,但是您想保留不同的'projectX.lib'嗎?或者只是一個'final.lib'? –
現在不同的庫。我可以將它們組合成一個單一的。 – Geo