makefile patsubst module/src/class.cpp 到 build/module/class.o

makefile patsubst module/src/class.cpp to build/module/class.o

我正在为我的项目编写 makefile,ant 结构是

.
├── 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自动生成。

OBJ := $(patsubst %.cpp,build/%.o,$(SRC))
OBJ := $(subst /src/,/,$(OBJ))

或一行:

OBJ := $(patsubst %.cpp,build/%.o,$(subst /src/,/,$(SRC)))