首页 > 解决方案 > 在代理后面的 CMake 中获取依赖项

问题描述

我在 Win10 系统上的代理后面。我已将其设置为系统范围的代理和全局 git 代理(在发现我什至无法对内部网络之外的任何 repo 进行简单克隆之后)。所以 git 和任何依赖于操作系统代理设置的东西一样有效。但是现在我处于 CMake 试图获取一些外部依赖项(构建 VTK)的情况。这是输出:

P C:/Qt/Tools/CMake_64/share/cmake-3.19/Modules/ExternalData.cmake"
-- Fetching "https://data.kitware.com/api/v1/file/hashsum/SHA512/bafaaffbbf27e5908e709c8d6181ff5e277ed0efe1706aededef77da74ab96758594d2d2ee96e6edde184c1c0914d6c25f84772b5d14ce56057bd23c541a395b/download"
-- Fetching "https://www.vtk.org/files/ExternalData/SHA512/bafaaffbbf27e5908e709c8d6181ff5e277ed0efe1706aededef77da74ab96758594d2d2ee96e6edde184c1c0914d6c25f84772b5d14ce56057bd23c541a395b"
CMake Error at C:/Qt/Tools/CMake_64/share/cmake-3.19/Modules/ExternalData.cmake:1121 (message):
  

  Object
  SHA512=bafaaffbbf27e5908e709c8d6181ff5e277ed0efe1706aededef77da74ab96758594d2d2ee96e6edde184c1c0914d6c25f84772b5d14ce56057bd23c541a395b
  not found at:

    https://data.kitware.com/api/v1/file/hashsum/SHA512/bafaaffbbf27e5908e709c8d6181ff5e277ed0efe1706aededef77da74ab96758594d2d2ee96e6edde184c1c0914d6c25f84772b5d14ce56057bd23c541a395b/download ("Couldn't connect to server")
    https://www.vtk.org/files/ExternalData/SHA512/bafaaffbbf27e5908e709c8d6181ff5e277ed0efe1706aededef77da74ab96758594d2d2ee96e6edde184c1c0914d6c25f84772b5d14ce56057bd23c541a395b ("Couldn't connect to server")

我正在通过 Qt Creator 运行 CMake。起初我认为这可能与 IDE 有关。然而,Qt Creator 没有代理设置(至少我找不到),因此它从系统方面的代理设置中获取代理设置。并且确实使用设置的更新部分中的“立即检查”按钮检查 IDE 的更新不会给出任何错误并说没有新版本(实际上是因为我刚刚使用官方安装程序下载了最新版本)。

有没有办法让 CMake 使用系统范围的代理设置?最好不要更改 CMake 配置文件。

更新:我把其中一个 URL(比如这个)粘贴到我的网络浏览器中。我可以下载文件。

标签: cmakeproxy

解决方案


显然CMake 依赖于环境变量 HTTP_PROXY 和 HTTPS_PROXY。我习惯于在 Linux 上设置这些,但不知道这同样适用于 Windows。我所要做的就是将这两个(将来可能会从 CMake 调用 HTTP 和 HTTPS URL)添加到我的环境变量(用户特定就足够了)并且 CMake 能够下载所有外部依赖项。


推荐阅读