Makefile2

简介: 规范target可以是Object file, 可执行文件或者标签(标签一般没有依赖)越靠近最终结果的target卸载越前面定义target前, 定义CC, SRC, CFLAGS, OBJS, INCLUDES, RM, COPY等变量方便修改在以前使用gcc编译时, 一般直接使用gcc编程链接成可执行文件, 但是在makefile中.

规范

  • 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)

  1. 读入所有的Makefile。
  2. 读入被include的其它Makefile。
  3. 初始化文件中的变量。
  4. 推导隐晦规则,并分析所有规则。
  5. 为所有的目标文件创建依赖关系链。
  6. 根据依赖关系,决定哪些目标要重新生成。
  7. 执行生成命令。
目录
相关文章
|
7月前
|
存储 编译器 C++
Makefile
Makefile
42 0
|
Linux C语言 编译器
makefile 中 $@ $^ % 2015-04-11 18:02:36
来自博客: http://blog.csdn.net/kesaihao862/article/details/7332528  这篇文章介绍在LINUX下进行C语言编程所需要的基础知识。
1312 0