[英]Why can I use CMake supplied modules (CMakeDependentOption.cmake specifically) locally, but not on CI or Docker?
我有一個在本地成功構建的 cmake 項目,但出現錯誤
include could not find load file:
CmakeDependentOption
嘗試在 CI 平台或 Docker 中構建時。 請注意, CMakeDependentOption.cmake 是 cmake 本身附帶的腳本。 所以它應該是可用的。 在CI安裝cmake的,我wget
相關CMake的版本從他們的下載頁面,將它解壓縮,並添加bin目錄到PATH
環境變量。 然后我使用cmake
命令來構建我的庫。 結果就是上面的錯誤。
我懷疑這意味着 CMake 變量(例如“CMAKE_MODULE_PATH”但不是,因為這個變量在 cmake 腳本開始時似乎是空的)被搞砸了或沒有以某種方式設置。 要include
的正確文件的路徑是
<cmake_root>/share/cmake-3.18/Modules/CMakeDependentOption.cmake
我已經驗證它手動存在。 我的問題:有沒有辦法從 cmake 中找到這個目錄? 也許是cmake --config
或cmake --libs
模式(有點像 pkg-config?)
如果做不到這一點,是否有人對為什么會發生這種情況以及如何解決它有任何建議。
您可以在本地使用,因為您很可能不使用基於 linux 的平台,例如 windows 或 mac。 這是因為 linux 文件系統區分大小寫。 這意味着CmakeDependentOption
與CMakeDependentOption
不同。
Docker 在 linux 中運行容器,因此文件名將區分大小寫,如果大小寫不同,則包含將失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.