【发布时间】:2017-03-09 11:09:47
【问题描述】:
我正在为我的项目编写makefile,结构是
.
├── file
│ ├── include
│ │ └── FileIO.hpp
│ └── src
│ └── FileIO.cpp
├── main
├── main.cpp
├── makefile
├── ui
│ ├── include
│ │ ├── KeyValues.hpp
│ │ ├── MAP.hpp
│ │ ├── NotifyMessageVo.hpp
│ │ ├── Str2MAP.hpp
│ │ └── Value.hpp
│ ├── makefile
│ └── src
│ └── Str2MAP.cpp
所以我想使用patsubst 从每个模块的 *.cpp 生成 objs 文件。例如,我想从 file/src/FileIO.cpp 生成 build/file/FileIO.o。我只是不知道如何通过makefile自动生成它。
【问题讨论】:
-
还有
ui/src/foo.cpp=>build/ui/foo.o? -
@Beta 是的,我选择
OBJ := $(patsubst %.cpp, $(BUILD_ROOT)/%.o, $(SRC))OBJ := $(foreach o, $(OBJ), $(subst /src/,, $(o))),同时$(BUILD_ROOT)=build