Linux Makefile

本文介绍了Makefile的基本概念,包括GNUmake的工作流程,如查找Makefile、初始化变量、分析规则等。详细阐述了Makefile规则的构成,如目标、依赖文件和命令。同时,讲解了Makefile中的目标文件、变量的使用方法以及常见选项。还提到了Make的自动推导功能,使得编译过程更为简洁。最后,概述了Makefile中一些常用的变量引用,如$@、$<和$^。
摘要由CSDN通过智能技术生成

Makefile基本概念

GNU make工作流程
①:查找当前目录下的Makefile文件
②:初始化文件中的变量
③:分析Makefile中的所有规则
④:为所有的目标文件创建依赖关系
⑤:根据依赖关系,决定哪些目标文件要重新生成
⑥:执行生成命令

Makefile规则语法
一个Makefile文件主要含有一系列的规则,每条规则包含以下内容。
一个目标(target),即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如“clean”
一个或多个依赖文件(dependency)列表,通常是编译目标文件所需要的其他文件。
一系列命令(command),是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,且每个命令行的起始字符必须为TAB字符
在这里插入图片描述
其中test为主目标,冒号后面为主目标依赖库文件;第二行为编译命令,注意得TAB键开头;第三行往下依次为每个次目标依赖文件及其所需要的依赖文件和编译命令;最后一行clean在执行make命令的时候不执行,必须执行make clean命令才会把make生成的文件都给清除了

Makefile目标文件

Makefile中变量的使用
标准形式如下:
make 【选项】【宏定义】【目标文件】
常用选项
-f file: 指定Makefile的文件名
-n: 打印出所有执行命令,但事实上并不执行这些命令
-s: 在执行时不打印命令名
-w: 如果在make执行时要改变目录,则打印当前的执行目录
-d: 打印调试信息
-I: 指定所用makefile所在的目录
-h: help文档,显示Makefile的help信息

Make自动推导
GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。

只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果make找到一个test1.o,那么test1.c,就会是test.o的依赖文件,并且 gcc -c test1.c 也会被推导出来。

Makefile文件中变量的使用
语法:VARNAME=string
使用时,把变量用括号括起来,并在前面加上 符 号 , 就 可 以 引 用 变 量 的 值 : 符号,就可以引用变量的值: (VARNAME)
$@:指代当前规则下的目标文件列表
$<:指代依赖文件列表中的第一个依赖文件
$^:指代依赖文件列表中所有依赖文件
$?:指代依赖文件列表中新于对应目标文件的文件列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值