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

CMake中能否通过命名空间语法批量链接同一命名空间下的所有子目标?

CMake批量链接同一命名空间子目标的实现问题

CMake原生不支持foo::*这类通配符语法,来直接批量链接同一命名空间下的所有子目标,官方文档中也没有相关的语法定义。

如果想要实现类似批量链接的效果,常规方案有两种:

  • 构建一个聚合用的INTERFACE目标,比如add_library(foo::all INTERFACE),然后将所有foo::开头的子目标链接到这个聚合目标上,之后只需给你的目标链接foo::all即可
  • 通过CMake脚本遍历当前已注册的所有目标,筛选出符合foo::前缀的目标,再逐个调用target_link_libraries完成链接

但这两种方案都不符合你提出的“无需构建假目标或遍历已知目标列表”的要求。目前没有满足该条件的可行方法,你只能逐个明确指定需要链接的子目标,或者采用上述的替代方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:03:16