我有一個與subdir項目的生成文件的問題。 項目目錄樹是如下:Makefile子目錄遞歸
project
├── Makefile
├── main.cpp
|
├── lib1
│ ├── lib1.cpp
│ ├── lib1.h
│ └── Makefile
|
├── lib2
│ ├── Makefile
│ ├── lib2_1.cpp
│ ├── lib2_1.h
| ├── lib2_2.cpp
│ └── lib2_2.h
|
├── lib3
│ ├── Makefile
│ ├── lib3.cpp
│ └── lib3.h
每個子目錄的makefile文件(LIB1,LIB2 ...)是這樣的:
SRC_DIR = ./
BUILD_DIR = ./obj/
DEPS = lib1.o
all: $(BUILD_DIR)$(DEPS)
$(BUILD_DIR)%.o: $(SRC_DIR)%.cpp $(SRC_DIR)%.h
mkdir -p $(BUILD_DIR)
g++ --std=c++11 $< -c -o [email protected]
clean:
rm -fr $(BUILD_DIR)
我的問題是:如何創建廠名位於項目目錄中的文件,還是生成文件「root」? 我無法創建一個makefile,它以遞歸方式在子目錄中執行makefiles,並鏈接每個subdir的obj文件夾中的所有目標文件。
你能幫我嗎?請
只是一個評論,它不會解決你的問題。或者它會呢? ;)恕我直言,每個子目錄應該有一個歸檔/所以目標,而不是一個lib1.o目標。 –
爲什麼每個子目錄都應該有這樣的目標? –
archive/so,挑一個。我不知道你想要創建什麼,但是你的目錄被命名爲lib [123],所以我假設你正在構建庫。 –