简短版本:
vcpkg 无法构建包,出现以下错误:

Unable to determine appropriate CMake MSBuild generator for:
  Windows-x64-v142
This is because CMake 3.12.4 does not currently have a 'Visual Studio 16
  2019' option.

即使安装了 cmake 3.14。
我想告诉它使用 cmake 3.14

长版:

背景:

我正在试验 Visual Studio 2019 和 vcpkg。我目前有 Visual Studio 2017 和 vcpkg 完美运行。

设置:

我创建了一个新的三元组,目的是将 14.2 软件包与 14.1 软件包一起安装。这个三元组,我命名为 x64-windows-dynamic-2019-142,与标准的 x64-windows 三元组完全相同,但我在其中添加了 VCPKG_VISUAL_STUDIO_PATH 和 VCPKG_PLATFORM_TOOLSET。
完整的三元组文件如下所示:
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual
Studio\\2019\\Community")
set(VCPKG_PLATFORM_TOOLSET "v142")

我将 vcpkg 拉到最新的 master 分支并重新运行 bootstrap-vcpkg.bat。

问题:

当我运行 vcpkg install sfml:x64-windows-dynamic-2019-142 时,它​​安装了 sfml 的许多依赖项而没有错误,但由于我上面提到的错误而无法安装 sfml。

我很困惑为什么依赖项没有无法构建,但我真正想知道的是如何让 vcpkg 使用我安装的和最新的 CMake 以便它可以完成构建。

当我在安装 sfml 的同一个电源 shell 中运行“cmake --version”时,它返回“cmake version 3.14.0”

最佳答案

在调用 vcpkg.exe 之前尝试设置环境变量 VCPKG_FORCE_SYSTEM_BINARIES ,即:

C:\vcpkg>set VCPKG_FORCE_SYSTEM_BINARIES=1
C:\vcpkg>vcpkg install sfml:x64-windows-dynamic-2019-142

请注意,工具 cmake.exegit.exeninja.exe 必须在路径上可用。

关于cmake - 如何指定 vcpkg 使用的 CMake 版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55204593/

10-11 19:10