CMake中的一些概念

1. CMP0028双冒号的使用

https://cmake.org/cmake/help/latest/policy/CMP0028.html
target名中的双冒号意思是ALIAS或者IMPORTEDtarget
CMake2.18.2及更低版本中,允许在target_link_libraries()命令中使用含双冒号的target或者文件。
在计算target的链接依赖的时候,每个依赖的名字要么是target,要么是磁盘上的文件名。(target就是构建的目标,是你add_execute或者add_library中写的那个东西)。在使用双冒号"::"之前,如果target没有找到匹配的名字,这个名字被认为是指向磁盘上的一个文件,这会导致出现令人迷惑的message(如果是target的name出现了书写错误的话)。
参考LINK_LIBRARIES_ONLY_TARGETS中target的属性
就旧版本CMake中,会搜索target,然后是磁盘中的文件甚至搜索包含双冒号的项。新的CMP0028行为会抱一个FATAL_ERROR错误,如果一个链接依赖包含双冒号但是不是一个IMPORTED或者ALIAS的target。

2. ALIAS TARGET

cmake原文档地址
一个ALIAS target是一个别名,在只读上下文中(没搞懂只读上下文啥意思)可以与二进制目标名称互换使用。ALIAS目标的主要用例是库附带的单元测试可执行文件,这些可执行文件可以是同一构建系统的一部分,也可以根据用户配置单独构建。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝域小兵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值