Makefile教程 7-10

Makefile教程 7-10

教程整理部分1

教程整理部分2

Makefile教程7:变量

博客地址

这一章节的内容,基本在makefile教程:变量部分都介绍过了。

Makefile教程8:变量,条件判断

makefile8

环境变量

这个本意很简单,就是可以读取操作系统的环境变量,比如:

.PHONY:

debug:
	env=1;export env;echo $(env)

;的这个用法见makefile之命令之间的关联

这里就是定义了一个变量env,并且将其设置为环境变量:export env,这部分属于操作系统的知识,和makefile无关。

之后就是在makefile中读取:echo $(env)读取操作系统中定义的环境变量。


在编译的过程中,可以使用参数-e来指定环境变量,比如还是上面的makefile,在运行时:

make -e env=2 debug

就是可以覆盖掉系统中的环境变量。

目标变量

这个玩意本意很简单,先回顾一下makefile中命令的基本格式:makefile基础

target ... : prerequisites ...
	command

其中,如果我们想定义一些变量,仅仅在这个target中生效,就可以采用这个,比如下面的例子,注意看其中的注释:

.PHONY:
# 这个变量仅仅在 debug 中生效
debug: cmd = pwd
# 这个变量仅仅在 debug2 中生效
debug2: cmd = whoami
debug:
	$(cmd)

debug2:
	$(cmd)

所以运行make debug的时候,真正执行的是pwd,运行make debug2的时候,真正执行的是whoami

模式变量

这个也很简单,就是如果有一些变量我们想放在多个目标变量里,就可以使用这个,比如:

.PHONY:
# 模式变量,顾名思义,它自己本身就是目标变量中的变量
de%: cmd = whoami

debug:
	$(cmd)

debug2:
	$(cmd)

其中debugdebug2都可以使用这个变量。

条件判断

这个很简单,就是在makefile中增加条件判断,比如下面这个例子:

example = hello
# 注意,ifeq 后面一定要空一格,否则会报错
ifeq ($(example),hello)
	output=world
else
	output
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值