后知后觉Makefile之二(专谈并行编译)

本文详细梳理了Makefile中的并行选项、条件Make功能,以及如何利用Sub-make和MAKEFLAGS进行高效的编译管理。作者强调了自顶向下构建方法和正确设置依赖关系的重要性,提供了实用的技巧和示例。

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

由来

写了后知后觉Makefile后,觉得有必要对现存的Make实现进行下梳理。

为了保证梳理在一个新的认知水平上,在梳理前对以前模糊的概念,通过阅读官网的手册进行了一些必要的理论脑补,使得修补技术,更符合Make的原笔原意 😃

并行Make武器库

列举了修补使用到的技术要素

并行选项

  • -j[jobs]
  • -l [load]

建议编译环境独立使用的时间,选择-j选项进行充分并行;编译环境共享使用的时间,需要考虑负载因素,建议使用-l选项

条件Make

  • Target依赖条件选择
  • Target执行Recipes指令进行条件执行
  • immediate ?= deferred变量条件赋值,选择性地赋值,以利于与集成Make环境协调
# 条件依赖
ifndef somecondition
    all: sometarget   
endif

# 指令条件执行
all:
ifndef somecondition
   @echo This statement will be excuted when var is not setted
endif

# 共享变量条件赋值
sharedvar ?= default
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值