CMP0008¶
警告
此策略的 OLD
行為已在 CMake 4.0 版本中移除。此策略必須透過呼叫 cmake_minimum_required()
或 cmake_policy()
設定為 NEW
。
以完整路徑連結的函式庫必須具有有效的函式庫檔案名稱。
在 CMake 2.4 及更早版本中,可以編寫如下程式碼
target_link_libraries(myexe /full/path/to/somelib)
其中 somelib
應該是有效的函式庫檔案名稱,例如 libsomelib.a
或 somelib.lib
。對於 Makefile 產生器,這會在建置時產生錯誤,因為找不到完整路徑的依賴項。對於 Visual Studio 產生器 IDE 和 Xcode
產生器,這過去可以意外地運作,因為 CMake 總是會分割出函式庫目錄,並要求連結器依名稱搜尋函式庫 (-lsomelib
或 somelib.lib
)。儘管使用 Makefiles 會失敗,但某些專案具有類似的程式碼,並且僅使用 Visual Studio 和/或 Xcode 進行建置。此版本的 CMake 偏好將完整路徑直接傳遞給原生建置工具,在這種情況下會失敗,因為它未命名有效的函式庫檔案。
此策略決定如何處理似乎未命名有效函式庫檔案的完整路徑。此策略的 OLD
行為是從路徑中分割出函式庫名稱,並要求連結器搜尋它。此策略的 NEW
行為是信任給定的路徑,並將其直接且不經修改地傳遞給原生建置工具。
此策略在 CMake 2.6.1 版本中引入。在 CMake 4.0 版本中移除之前,可以透過 cmake_policy()
或 cmake_minimum_required()
進行設定。如果未設定,CMake 會發出警告,並使用 OLD
行為。