CMP0018

警告

此策略的 OLD 行為已在 CMake 4.0 版本中移除。此策略必須透過呼叫 cmake_minimum_required()cmake_policy() 設定為 NEW

忽略 CMAKE_SHARED_LIBRARY_<Lang>_FLAGS 變數。

CMake 2.8.8 及更低版本在 SHAREDMODULE 函式庫中使用未記載的 CMAKE_SHARED_LIBRARY_<Lang>_FLAGS 平台變數的值編譯來源程式碼。此變數包含編譯共享函式庫物件所需的平台特定旗標。通常它包含諸如 -fPIC 之類的位置獨立程式碼旗標,但也包含某些平台上需要的其他旗標。CMake 2.8.9 及更高版本改為偏好使用 POSITION_INDEPENDENT_CODE 目標屬性來決定哪些目標應為位置獨立,並使用新的未記載平台變數來選擇旗標,同時完全忽略 CMAKE_SHARED_LIBRARY_<Lang>_FLAGS

任一方法的預設值都會產生相同的編譯旗標,但如果專案從其原始值修改 CMAKE_SHARED_LIBRARY_<Lang>_FLAGS,則此策略會決定要使用哪種方法。

此策略的 OLD 行為是忽略所有目標的 POSITION_INDEPENDENT_CODE 屬性,並對 SHAREDMODULE 函式庫使用修改後的 CMAKE_SHARED_LIBRARY_<Lang>_FLAGS 值。

此策略的 NEW 行為是忽略 CMAKE_SHARED_LIBRARY_<Lang>_FLAGS,無論它是否被修改,並遵循 POSITION_INDEPENDENT_CODE 目標屬性。

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