GNUMake点滴(1)

本文介绍了Makefile中的一些高级技巧,包括如何正确声明伪目标、理解命令执行的上下文环境,以及如何有效地调用子目录下的Makefile进行构建。特别强调了在执行子目录中的make时,如何利用MAKE变量来传递命令行选项。

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

1. .PHONY声明伪目标。
2. 规则中每一行命令都会另起一个shell执行,不同shell之间没有任何关系
比如:
cd subdir
rm a.o

则第二行删除的是当前目录下的a.o,而与subdir无关。
要实现这种功能需要将两条命令写在同一行:cd subdir; rm a.o


3. 要执行子目录中的make,推荐使用下面的方式:
subsystem:
    cd subdir && $(MAKE)

    变量“MAKE”的特点是:在规则的命令行中如果使用变量“MAKE”,标志“-t”、“-n”和“-q”在这个命令的执行中不起作用。尽管这些选项是告 诉make不执行规则的命令行,但包含变量“MAKE”的命令行除外,它们会被正常执行。同时,执行make的命令行选项参数被通过一个变量 “MAKEFLAGS”传递给子目录下的make程序。
     例如,当使用make的命令行选项“-t”来更新目标的时间戳或者“-n”选项打印命令时,这些选项将会被赋值给变量“MAKEFLAGS”被传递到下一 级的make程序中。在下一级子目录中执行的make,这些选项会被附加作为make的命令行参数来执行,和在此目录下使用“make -t”或者“make -n”有相同的效果。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值