makefile简明教程.md

makefile的格式

目标文件:依赖文件
生成目标文件的命令(此行前面必须要有一个缩进!)

执行makefile:make命令
命令从下向上依次执行

makefile中的自动变量

&<:规则中的第一个依赖
$@:规则中的目标文件
$^:规则中的所有依赖

只能在规则的命令中使用

 main:main.c 
     gcc main.c -o main 
 add.o:add.c
      gcc -c add.c
 mul.o:mul.c
     gcc -c mul.c
 sub.o:sub.c
     gcc -c sub.c

使用自动变量简化

obj=main.o add.o sub.o mul.o
target=main
CC=gcc
$(target):$(obj)
    $(CC) $(obj) -o $(target)
%.o:%.c
    $(CC) -c $< -o $@

makefile自己维护的变量
CC = cc(gcc);//默认值为gcc,可以更改成其他编译器如g++
CPPFLAGS//预编译时需要的选项如 -I
CFLAGS//编译时需要的参数 -Wall -g -c
LDFLAGS//链接库时使用的选项 -L -l

makefile的工作原理

首先开始查找生成目标文件的依赖项文件是否存在,不存在则往下一命令查找,循环下去
如果执行了makefile之后对依赖文件进行了修改,则依赖文件的生成时间比目标文件晚,就会执行命令对目标文件进行更新,依次向上。

makefile中的函数

所以的makefile提供的函数都有返回值
获取指定目录下的某种类型的文件:
src= ( w i l d c a r d . / ∗ . c ) 将 指 定 文 件 替 换 成 另 一 个 文 件 , 第 三 个 参 数 为 将 要 被 替 换 的 文 件 o b j = (wildcard ./*.c) 将指定文件替换成另一个文件,第三个参数为将要被替换的文件 obj= (wildcard./.c),obj=(pasubst ./%.c , ./%.o , $(src))

  • .PONY 声明伪目标,.PONY:clean,添加这条命令后就不会与本地磁盘的clean文件哪个更新
  • rm -f ————强制执行
  • 在命令前添加一个-,如-mkdir /aa,即使这条命令执行失败也会继续执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值