年轻人的努力

导航

make和makefile

如果源代码文件少,可以直接使用gcc编译

如果代码过多,就需要使用make工具

make工具需要makefile文件

 

makefile文件的命名:

  makefile或者Makefile

makefile中的规则:

  目标:依赖

  (tab)命令

  app:a.c b.c c.c

    gcc a.c b.c c.c -o app

  这样写的缺点:修改一个文件,其他文件都重新编译,所以要分开写

makefile的工作原理:

  1.第一个目标是终极目标,检测依赖是否存在,如果依赖不见,就向下查找下面的规则

  2.如果依赖存在,通过判断文件的时间是否需要更新

 

makefile中的变量:

  自定义变量:小写

    1.obj=a.c b.c c.c

    2.变量取值:

      aa=$(obj)

  makefile自带的变量:大写

    

  自动变量:只能在规则中的命令中使用

    $@:规则中的目标

    $<:代表第一个依赖

    $^:代表所有依赖

 

makefile中模式匹配:

  %.o:%.c

makefile中的注释使用#

 

makefile中的函数:

  makefile中的函数都有返回值

  查找指定目录下的指定类型的文件:src = $(wildcard ./*.c)

  匹配替换:obj = $(patsubst %.c,%.o,$(src))

 

直接执行make生成终极目标

make 指定目标:生成指定目标

 

makefile中的命令前面添加-,表示即使该条命令执行失败后,继续向下执行其余的命令

 

声明伪目标:.PHONEY:目标

posted on 2021-03-28 01:06  年轻人的努力  阅读(80)  评论(0编辑  收藏  举报