CMP0028

警告

此策略的 OLD 行为已在 CMake 4.0 版本中移除。此策略必须通过调用 cmake_minimum_required()cmake_policy() 来设置为 NEW

目标名称中的双冒号表示 ALIASIMPORTED 目标。

CMake 2.8.12 及更低版本允许在 target_link_libraries() 命令中使用包含双冒号的目标和文件(部分构建系统生成器)。

双冒号的使用是用于为 IMPORTED 目标和 ALIAS 目标进行命名空间划分的常用模式。在计算目标的链接依赖项时,每个依赖项的名称可以是目标,也可以是磁盘上的文件。以前,如果找不到名称匹配的目标,该名称就会被视为指向磁盘上的文件。如果一个目标名称本应正确,但却出现了拼写错误,这可能会导致令人困惑的错误消息。

另请参阅 LINK_LIBRARIES_ONLY_TARGETS 目标属性。

此策略的 OLD 行为是先搜索目标,然后搜索磁盘上的文件,即使搜索词包含双冒号。此策略的 NEW 行为是,如果链接依赖项包含双冒号但不是 IMPORTED 目标或 ALIAS 目标,则会发出 FATAL_ERROR

此策略是在 CMake 版本 3.0 中引入的。在 CMake 版本 4.0 中移除之前,可以通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 会发出警告并使用 OLD 行为。