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 目標屬性來建立兩個具有相同實體名稱但邏輯名稱不同的目標。自訂目標必須僅具有全域唯一的名稱(除非使用 Makefiles 產生器的全域屬性 ALLOW_DUPLICATE_CUSTOM_TARGETS)。

此策略在 CMake 2.6.0 版本中引入。在 CMake 4.0 版本中移除之前,可以透過 cmake_policy()cmake_minimum_required() 進行設定。如果未設定,CMake 會發出警告,並使用 OLD 行為。