簡體   English   中英

為什么我可以在本地使用 CMake 提供的模塊(特別是 CMakeDependentOption.cmake),而不是在 CI 或 Docker 上?

[英]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 --configcmake --libs模式(有點像 pkg-config?)

如果做不到這一點,是否有人對為什么會發生這種情況以及如何解決它有任何建議。

您可以在本地使用,因為您很可能不使用基於 linux 的平台,例如 windows 或 mac。 這是因為 linux 文件系統區分大小寫。 這意味着CmakeDependentOptionCMakeDependentOption不同。

Docker 在 linux 中運行容器,因此文件名將區分大小寫,如果大小寫不同,則包含將失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM