make和makefile

本文详细介绍了make工具的使用语法,包括make命令的选项、目标、宏定义等,并解释了makefile的编写原则和规则,还提供了Makefile变量的定义、添加及引用方法。此外,文章还列举了一些常用的虚目标和特殊目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • make的使用语法

make [选项][目标][宏定义]
-d 显示调试信息
-f<文件> 指定从哪个文件中读取依赖关系信息,默认文件是Makefile或makefile “-”表示从标准输入
-h 显示所有选项的简要说明
-n 不运行任何Makefile命令,只显示他们
-s 安静的方式运行,不显示任何信息

  • makefile的编写原则和规则

规则一:
第一行:目标列表:关联性列表
第二行:命令列表
规则二:
目标列表:关联性列表;命令列表
(反斜杠续行,可使用shell中的通配符,注释(#),连接符(\),)

  • Makefile的变量使用
 定义:变量名:=[文本]
 添加:变量名+=[文本]
      变量名:=[文本] [文本]
引用变量:$(变量名)或者$单字符变量

内置变量:

$@     当前目标名称 
$?         比当前目标更新的已修改的依赖性列表
$<     依赖性列表中的第一个文件
$^     用空格分开所有的依赖性列表

虚目标:
不存在的文件,而且也无需创建他们
允许你强制执行某些事件,而这些事件在正常规则中是不会发生的
虚目标不是真正的文件,make命令可以使用针对它们的任意规则

常见虚目标列表:

all                 生成工程中所有可以执行者,通常是Makefile的第一个生成目标
test                运行程序的自动测试套件
clean           删除make all生成的所有文件
install         在系统目录中安装工程项目生成的可执行文件的文档
uninstall       删除make install 安装的所有文件

特殊目标:

.DEFAULTS           make找不到makef入口,执行目标相关命令
.IGNORE             忽略某一行,命令不正确停止
.PHONY              允许指定一个不是文件的目标,声明虚目标
.SILENT             make执行这些命令但不显示这些命令
.SUFFIXES               为目标指定的前提可以与后缀规则相关联

默认模式规则:
一:默认的模式规则(GNU make)

%.o:%c:
    $(CC) $(CFLAGS) -s $<
%.o:%s:
    $(CC) $(ASFLAGS) -o $@ $<

二:默认的后缀规则

SUFFIXES:.o.c.s
.c.o:
    $(CC) $(CFLAGS) -s $<
.s.o:
    $(CC) $(ASFLAGS) -s $<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值