You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Boost Build/B2/BJam简化跨OS依赖库配置?

简化Boost Build跨平台库依赖配置

你遇到的问题是因为Boost Build的sources参数不支持直接嵌入<target-os>这类条件属性,所以第一种写法会报错。重复定义目标的方式虽能运行,但代码冗余度太高,用**条件依赖(conditional requirements)**就能解决这个问题,只需要单份lib定义:

lib MyLib : $(SOURCES) $(COMMON_LIBS)
          : <target-os>windows:<library>$(WINDOWS_LIBS)
          ;

原理是把平台相关的附加库配置放到requirements参数(lib定义的第三个部分)里,这里支持用条件属性指定规则:当目标系统为Windows时,自动引入$(WINDOWS_LIBS)中的库。

如果需要支持多操作系统的不同依赖,直接追加条件即可:

lib MyLib : $(SOURCES) $(COMMON_LIBS)
          : <target-os>windows:<library>$(WINDOWS_LIBS)
            <target-os>linux:<library>$(LINUX_LIBS)
            <target-os>macos:<library>$(MACOS_LIBS)
          ;

这样既避免了重复代码,又能正确实现跨平台的依赖区分。

内容的提问来源于stack exchange,提问作者Gabriel Devillers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:55:14