c++ - 递归编译单独的 .cpp 文件 Makefile
问题描述
我有这样的文件结构:
Project
|-- program1
| `-- main.cpp
|-- program2
| `-- main.cpp
`-- program3
`-- main.cpp
我想在项目根目录创建一个生成文件,它会自动递归获取所有 .cpp 文件并将它们编译为同一文件夹中的文件。像这样:
Project
|-- program1
| |-- main.cpp
| `-- main.o
|-- program2
| |-- main.cpp
| `-- main.o
`-- program3
|-- main.cpp
`-- main.o
这些程序彼此无关,因此没有任何重叠。
我以前从未创建过makefile,文档很难理解。有什么帮助吗?
解决方案
这将满足您的要求(如果您使用的是 GNU make):
SRCS := $(wildcard */*.cpp)
OBJS := $(patsubst %.cpp,%.o,$(SRCS))
all: $(OBJS)
您的问题有些令人困惑,因为您的示例仅显示将源文件编译为目标文件,但目录名称显示为“程序”。
如果以上不是您想要的,请让您的问题更加清晰和详细。
推荐阅读
- javascript - mongoose switch 数据库进行具体操作
- javascript - 使用 puppeteer 在 iframe 中输入文本
- javascript - Webpack 加载字体图标但不加载字体本身
- git - cpanel 警告:您的系统管理员必须启用 shell 访问才能让您查看克隆 URL
- css - 当其余列为空时,如何在网格中居中列?
- python - 如何使用python在电报上发送照片
- android - ccache 以只读方式失败
- python - 我无法在 Windows 上的 python 中安装任何模块
- flutter - Flutter Sqflite 数据库在关闭 App 后会消失
- r - 用中值绝对偏差误差条绘制中值浓度曲线