通用C/C++程序Makefile模板

需积分: 3 21 下载量 174 浏览量 更新于2024-11-24 收藏 5KB TXT 举报
"通用makefile模板" `通用makefile`是一个用于C或C++程序编译的模板文件,由whyglinux在2006年3月4日编写。它的主要功能是在指定的源代码目录(`SRCDIRS`)中寻找特定扩展名(`SOURCE_EXT`)的源文件,然后编译这些源文件,并最终链接生成名为`PROGRAM`的可执行文件。用户可以通过运行不同的`make`命令来执行不同的操作。 以下是这个`通用makefile`的关键部分及其详细解释: 1. **变量定义**: - `PROGRAM`:定义可执行文件的名称。默认为空,需要根据实际项目进行设置,例如`PROGRAM:=my_program`。 - `SRCDIRS`:定义源代码文件所在的目录列表,通常包含多个路径,用空格分隔。例如`SRCDIRS:=src include`。 - `SOURCE_EXT`:定义源文件的扩展名,如`SOURCE_EXT:=cpp c`,表示查找`.cpp`和`.c`文件。 2. **编译规则**: - `make`:默认目标,执行编译和链接的全过程,生成`PROGRAM`。 - `make objs`:仅编译源文件,不链接,通常很少用到。 - `make clean`:删除目标对象文件和依赖文件,保留源代码。 - `make cleanall`:除了`make clean`的功能外,还会删除可执行文件`PROGRAM`。 - `make rebuild`:等同于`make clean`后跟`make`,用于重新编译整个程序。 3. **自定义部分**: 用户可以根据自己的项目需求调整这些变量,例如添加更多的源文件目录、改变目标文件名或扩展名等。 4. **编译过程**: - makefile会遍历`SRCDIRS`中的所有目录,查找符合`SOURCE_EXT`的文件。 - 对每个找到的源文件,它会生成对应的对象文件。 - 最后,所有对象文件会被链接成`PROGRAM`。 5. **自动化构建**: 通过这样的makefile,开发者可以轻松地自动化编译流程,而无需手动管理每个源文件的编译和链接步骤,提高了开发效率。 这个通用makefile模板适用于大多数C/C++项目,只需简单调整就能适应不同的项目结构和需求。它是一个基础的构建工具,帮助开发者规范化和简化项目构建过程。