CMP0002

警告

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

逻辑目标名称必须全局唯一。

使用 add_executable()add_library()add_custom_target() 创建的目标名称是逻辑构建目标名称。逻辑目标名称必须全局唯一,因为

  • 唯一的名称可以在 CMake 代码和 make 工具命令行中被明确引用。

  • Xcode 和 VS IDE 生成器使用逻辑名称为目标生成有意义的项目名称。

可执行文件和库目标的逻辑名称不必与构建的物理文件名相对应。考虑使用 OUTPUT_NAME 目标属性来创建两个具有相同物理名称但逻辑名称不同的目标。自定义目标必须具有全局唯一的名称(除非使用全局属性 ALLOW_DUPLICATE_CUSTOM_TARGETS 与 Makefiles 生成器一起使用)。

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