Makefile2
2024-08-31 15:32:07
规范
- target可以是Object file, 可执行文件或者标签(标签一般没有依赖)
- 越靠近最终结果的target卸载越前面
- 定义target前, 定义CC, SRC, CFLAGS, OBJS, INCLUDES, RM, COPY等变量方便修改
- 在以前使用gcc编译时, 一般直接使用gcc编程链接成可执行文件, 但是在makefile中.o后缀的Object file非常重要, 需要生成OBJ = main.o test1.o test2.o
- 每一个makefile文件在最后应该定义一个clean标签, 用于清理编译生成的文件, 这是定义的变量就方便了许多, 在clean标签中使用-rm -rf $(OBJS), 其中rm之前的横线是说可能rm执行时会有错到那时不用理会
- makefile中可以自动推导出.c与.o的依赖关系, 如果target是.o文件, makefile最自动加上.c的依赖并执行一个从.c --> .o的命令
Makefile工作流程(Copy From Others)
- 读入所有的Makefile。
- 读入被include的其它Makefile。
- 初始化文件中的变量。
- 推导隐晦规则,并分析所有规则。
- 为所有的目标文件创建依赖关系链。
- 根据依赖关系,决定哪些目标要重新生成。
- 执行生成命令。
最新文章
- 以实际的WebGIS例子探讨Nginx的简单配置
- nodeJs中创建服务器
- 孙鑫MFC学习笔记9:状态栏与工具栏编程
- sdut 2498【aoe 网上的关键路径】
- springJDBC一对多关系,以及Java递归,jsp递归的实现
- wpf 面试题目
- iOS 进入后台的处理
- Linux中Kill进程的N种方法
- Gradle 1.12 翻译——第十四章. 教程 - 杂七杂八
- GCD其他实用场景
- Codeforces 32E Hide-and-Seek 乞讨2关于镜面反射点 计算几何
- SVN的具体使用方法介绍(安装以及操作)
- 《Linux命令行与shell脚本编程大全》第九章 安装软件程序
- 一.初识java
- Flask Session 详解
- Spring中Bean的生命周期及其扩展点
- [android] xml文件的序列化
- JNI NDK (AndroidStudio+CMake )实现C C++调用Java代码流程
- Python学习(十四) —— 并发编程
- PAT 甲级 1044 Shopping in Mars