0
点赞
收藏
分享

微信扫一扫

makefile从入门到入门

穆风1818 2022-02-12 阅读 64
linux

1、makefile的作用?

可以理解成一个项目管理脚本,只需一个简单的make命令,即可实现编译整个项目或其他功能。Makefile可以使工程的编译自动化,避免了每次编译工程时手动输入文件名和参数,从而极大的避免出错和节约大量时间。

makefile会在整个文件展开后,最后再决定变量的值,这一点和我们熟悉的编程语言是不一样的。

Makefile 中:= ?= += =的区别 - wanqi - 博客园

2、 makefile的基础规则

①命名:makefile的命名只能是makefile或者Makefile

②正常情况下,我们只需掌握makefile的1个规则,2个函数,3个自动变量,即可书写出一个简单的makefile文件

1个规则:

目标:依赖条件        

(tab)shell命令

notice1. 目标的时间必须晚于依赖条件的时间,否则,更新目标

notice2. 依赖条件如果不存在,找寻新的规则去产生依赖条件。

ALL:指定 makefile 的终极目标。

2个函数

src = $(wildcard ./*.c):匹配当前目录下所有.c文件,将文件名组成列表赋值给变量src

obj = $(patsubst%.c,  %.o,  $(src)):将参数3中,包含参数1的部分,替换为参数2

clean: (没有依赖)

-rm -rf $(obj) a.out “-”:作用是,删除不存在文件时,不报错。顺序执行结束。

3个自动变量

$@:在且仅在规则命令中,表示规则中的目标

$^:在且仅在规则目标中,表示所有依赖条件

$>:在且仅在规则命令中,表示第一个依赖条件。如果将该变量应用在模式规则中,它可将依赖条件裂变中的依赖依次取出,套用规则模式

模式规则:

%.o : %.c

        gcc -c $< -o %@

静态模式规则:

$(obj): %.o : %.c   (用于致命该模式规则给哪个目标使用)

        gcc -c $< -o %@

举报

相关推荐

0 条评论