У меня проблема с makefile для проекта с 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)
Моя проблема заключается в: Как создать макияж файл, который находится в каталоге проекта, или make-файл «root»? Я не могу создать make-файл, который рекурсивно выполняет make-файлы в подкаталогах, и который связывает все объектные файлы в каталоге obj каждого поддира.
Вы можете мне помочь? Пожалуйста
Просто комментарий, который не решит вашу проблему. Или может быть? ;) IMHO, каждый субдир должен иметь архив/цель, а не цель lib1.o. –
Почему у каждого субдира должна быть такая цель? –
архив/так, выберите один. Я не знаю, что вы пытаетесь построить, но ваши каталоги называются lib [123], поэтому я предполагаю, что вы создаете библиотеки. –