Makefile总结

概述

main: main.c
    gcc main.c -o main

在源代码所在目录新建一个Makefile文件,文件内容为上述内容,保存后在当前目录命令行下输入make,就可以得到编译后的可执行文件main
上述命令解释如下:
每一个Makefile主体都是有若干个规则模块组成:表明输出的目标(本例为main文件),输出目标的依赖对象(本例为main.c文件),生成目标需要执行的命令(本例为gcc main.c -o main),具体格式为:

目标/文件: 依赖文件列表
(Tab)命令

注意:

  1. 命令中前面(TAB)表示用户按了TAB键产生的空白区域。
  2. 目标通常是要产生的文件名称,也可以是一个执行的动作名称如clean或cleanall等
  3. 依赖文件列表是用来输入从而产生目标的文件,一个目标经常有几个依赖文件,文件名称之间以空白隔开,如main: test1.c test2.c
  4. 命令是make执行的动作,一个规则可以含有几个命令,每个命令占一行。
  5. 每个命令行前面必须是一个TAB字符,即命令行第一个字符是TAB。
  6. 如果一个依赖关系发生变化,则需要规则调用命令对相应依赖和服务进行处理,从而更新或创建目标。
  7. 编译并生成执行代码并不是编写make规则的唯一事情。Makefile文件可让make完成编译程序以外的任务如删除中间文件和可执行文件等。exec_file为可执行文件,中间文件是".o"结尾的文件,代码如下:
clean:
       $ rm *.o exec_file

参考

  1. ARM嵌入式Linux系统构建与驱动开发范例,周立功,P45
  2. 跟我一起写Makefile

未完待续

你可能感兴趣的:(Makefile总结)