美文网首页
编写Makefile及简单分析

编写Makefile及简单分析

作者: 温暖春阳 | 来源:发表于2018-03-31 10:27 被阅读13次
makefile的好处:一次编写,终身受益
makefile的命名规则:
  • makefile
  • Makefile
makefile的三要素:
  • 目标
  • 依赖
  • 规则命令
写法:

目标:依赖
tab键规则命令

#get all .c files 
SrcFiles=$(wildcard *.c)
#all .c files --> .o files 
ObjFiles=$(patsubst %.c,%.o,$(SrcFiles))

all:app app1

#目标文件用法 $(Var)
app:$(ObjFiles)
    gcc -o $@ -I./include $(ObjFiles)

app1:$(ObjFiles)
    gcc -o $@ -I./include $(ObjFiles)
#模式匹配规则,$@,$< 这样的变量,只能在规则中出现
%.o:%.c
    gcc  -c $<  -I./include -o $@ 

test:
    @echo $(SrcFiles)
    @echo $(ObjFiles1)

#定义伪目标,防止有歧义
.PHONY:clean all 

clean:
    -@rm -f *.o 
    -@rm -f app app1 
目录结构.png

可以定义变量 ObjFiles=main.o add.o sub.o div.o …
变量的使用:$(ObjFiles),$(变量名)

makefile的隐含规则:默认处理第一个目标

函数:

  • wildcard 可以进行文件匹配
  • patsubst 内容的替换

Makefile的变量:

  • $@ 代表目标
  • $^ 代表全部依赖
  • $< 第一个依赖
  • $? 第一个变化的依赖

@在规则前代表不输出该条规则的命令
规则前的"-",代表该条规则报错,仍然继续执行

定义伪目标:all
使用.PHONY 防止目标有歧义
使用-f 强制删除

相关文章

  • 编写Makefile及简单分析

    makefile的好处:一次编写,终身受益 makefile的命名规则: makefile Makefile ma...

  • makefile编写,GDB调试

    1.makefile编写的三要素 在学习编写makefile文件以前,我们先来看makefile编写的三要素。 1...

  • 二 . 树莓派A20驱动程序编写(模板程序)

    1 Makefile Makefile文件编写如下: 2 *.c文件 建立一个test.文件,编写内容如下: 3 ...

  • Makefile 编写

    1. 原生 Makefile 自己编写 Makefile 文件 2. CMakeLists.txt 文件 CMak...

  • Makefile编写

    背景 以前学的一些东西需要记录下 Makefile 编写 以自己实际项目来阐述每个的用法 目录结构15324023...

  • 编写Makefile

    最近学习了如何编写Makefile,以下是一则实例 文件结构 Makefile实例

  • Makefile 编写

    通配符 $? 所有比目标新的依赖目标的集合 $^ 所有依赖 的集合 $+ 所有依赖的目标的集合,但是不去重 $% ...

  • makefile编写

    1、若是同一个目录下的C文件比如目录下有a.c、b.c两个文件,可编写如下

  • makefile 编写

    1. Makefile 中::=,?=, +=, =的区别 = 是最基本的赋值:= 是覆盖之前的值?= 是如果没有...

  • makefile入门一

    Linux下Makefile详解 下面就来看如何写Makefile文件:Makefile文件编写规范: 下来看事例...

网友评论

      本文标题:编写Makefile及简单分析

      本文链接:https://www.haomeiwen.com/subject/ljhgcftx.html