【问题标题】:CMake: Visual Studio 15 2017 could not find any instance of Visual StudioCMake:Visual Studio 15 2017 找不到任何 Visual Studio 实例
【发布时间】:2019-01-11 02:44:15
【问题描述】:

当我尝试安装 CMake 时出现错误:

Visual Studio 15 2017 could not find any instance of Visual Studio.

我使用的是 Windows 7 和 Visual Studio 2017。CMakeOutput.log 文件写道:

The system is: Windows - 6.1.7601 - AMD64

有什么想法吗?

【问题讨论】:

    标签: visual-studio cmake


    【解决方案1】:

    我遇到了同样的错误并执行了以下步骤来解决问题:

    1. 打开 Visual Studio
    2. 转到工具 -> 获取工具和功能
    3. 在“工作负载”选项卡中启用“使用 C++ 进行桌面开发”
    4. 点击右下角的修改

    这些步骤导致安装了“用于 CMake 的 Visual C++ 工具”功能,但此工作负载中包含的其他可选 C++ 功能也可能有助于您尝试执行的操作。

    在 Visual Studio 更新程序完成安装后,尝试重新运行该命令。您可能需要打开一个新的命令窗口。

    【讨论】:

    • 就是这样。我已经拥有了大部分 C++ 的东西,但是缺少“用于 CMake 的 Visual C++ 工具”。谢谢。
    • 我已经安装了它,但仍然出现错误。我不确定,但可能与卸载 cmake 3.12 然后安装 3.13 相关
    • 我安装了 Visual Studio 2019 并启用了所有这些设置,但仍然出现此错误。拥有最新的 cmake 版本(3.16.5),考虑到 VS 本身安装程序中 cmake 的较低版本和更高版本的建议,这应该没问题。
    • 这对我有用。谢谢!应该是公认的答案。
    • 就是这样 :-) 这个答案应该固定在以“cmake cannot detect visual studio”开头的每个 stackoverflow 问题的开头。
    【解决方案2】:

    就我而言,我安装了 Visual Studio,选择了我想要的工作负载和模块,但我忽略了重新启动的请求,假设在一天结束时关闭计算机并在第二天重新启动就足够了。 我错了。

    第二天我尝试了一个 cmake 构建并得到了“找不到 Visual Studio 的任何实例”错误。经过几次尝试解决后,我重新运行了安装程序,没有对配置进行任何更改,然后单击了修改。这次我让它重新启动计算机。重启花了很长时间。之后我的 cmake 构建工作了。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题“找不到任何 Visual Studio 实例” 但是使用 Visual Studio 2019(社区版),我只需要配置 VS160COMNTOOLS 变量,以便 CMake 正确检测 Visual Studio。

      export VS160COMNTOOLS="/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools"
      

      (参见https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2016%202019.html

      使用 Visual Studio 15 2017,您需要的变量应该是 VS150COMNTOOLS。 (参见https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2015%202017.html

      注意:就我而言,在 Travis-CI 工作流程中,我使用命令安装了 Visual Studio(无需重新启动):

      choco install visualstudio2019community
      choco install visualstudio2019-workload-nativedesktop # required
      

      只有第一个包,VS2019的CMake检测失败。

      【讨论】:

        【解决方案4】:

        我正在配置一个 Jenkins 构建节点,并且可以成功手动运行 CMake GUI,但命令行使用或使用 CMake 插件构建会失败:

        Visual Studio 16 2019 找不到 Visual Studio 的实例。

        -添加了一个 x64 参数,结果没有变化。

        问题是 CMake 无法确定 Windows SDK 版本。 通过添加 CMAKE_SYSTEM_VERSION 参数,CMake 就可以找到 Visual Studio。

        -D CMAKE_SYSTEM_VERSION=10.0.18362.0(使用您的 windows SDK 版本)

        环境: Windows 10 系统版本:19042 CMAKE 3.19.4 VS 2019 专业版 16.8.4 詹金斯 2.235.1

        有效的完整命令行: "C:\Program Files\CMake\bin\cmake" -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE=Release -A x64 -D CMAKE_SYSTEM_VERSION=10.0.18362.0

        【讨论】:

          【解决方案5】:

          如果您已经安装了工作负载 Desktop development with C++ 并且在使用 Visual Studio 2022 进行 Flutter 时仍然遇到以下错误

          Generator
          
          Visual Studio 16 2019
          
          could not find any instance of Visual Studio.
          
          Building Windows application...
          
          Exception: Unable to generate build files"
          

          解决方案:按照以下步骤操作,

          1. 编辑your_flutter_path\packages\flutter_tools\lib\src\windows\build_windows.dart,将第28行的常量从Visual Studio 16 2019改为Visual Studio 17 2022
          2. your_flutter_path\bin\cache\ 中删除flutter_tools.stampflutter_tools.snapshot
          3. 在项目中运行flutter clean

          【讨论】:

            【解决方案6】:

            我遇到了类似的问题,在我的 npm 项目中安装 libzmq 时抛出了相同的错误,并且无法通过在 Visual Studio 安装程序中的“使用 C++ 进行桌面开发”下启用“msbuild”来解决。

            我的解决方案最终是使用以下命令为 npm 重新安装 Windows 构建工具。

            npm install --global windows-build-tools

            注意:请记住在运行之前以管理员身份运行命令提示符(或您使用的任何终端)。

            【讨论】:

              【解决方案7】:

              如果 CMake 曾经与已安装的 Visual Studio 一起工作并且某天损坏了,那么问题可能是 VS 需要重新启动系统才能完成一些更新。

              为了快速验证,将HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\Setup\Reboot重命名为likeHKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\Setup\Reboot.bak,然后重新运行cmake,应该会成功。如果这是问题,请不要忘记重命名注册表并重新启动系统。

              【讨论】:

                【解决方案8】:

                就我而言,我在该配置对话框中选择了不同版本的 Visual Studio,而我安装了不同的版本。 请选择相同的版本。

                【讨论】:

                  【解决方案9】:

                  使用 VS 2017 时,请注意这确实是 VS 2015,CMake 将其识别为 VS 2017 2022,这不是我拥有的 VS 2017 版本,这给了我这个错误。所以我提供的结论是尝试不同的版本,特别是 2015 年的版本。

                  【讨论】:

                    【解决方案10】:

                    以上解决方案并没有为我解决这个问题。从https://nodejs.org/en/download/ 安装 node.js 后,显然安装了正确版本的 windows-build-tools

                    【讨论】:

                    • 如果上述解决方案作为答案被删除,您的答案应包括关键要素,以了解“当时”发生了什么。审查结束。
                    【解决方案11】:

                    我重新安装了 Visual Studio 2019(我以前的版本是 2017 版本),并设置了所有必需的设置(我的 cmake 版本是 3.23.0),它可以工作。所以尝试安装不同的版本。

                    【讨论】:

                      【解决方案12】:

                      如果您安装了两个或更多 Windows 10 SDK,请删除它们,但最新的除外。

                      【讨论】:

                        【解决方案13】:

                        尝试下载 windows-build-tools 包。

                        npm install --global --production windows-build-tools --vs2015
                        

                        这一步应该是解决 node-gyp 问题的最终解决方案。对于大多数人来说,这是真的。 NPM 有一个名为 windows-build-tools 的包,它应该会自动安装让 node-gyp 工作所需的一切,包括 Microsoft 构建工具、编译器、Python 以及在 Windows 上构建原生 Node 模块所需的一切。

                        【讨论】:

                          猜你喜欢
                          • 2018-02-06
                          • 1970-01-01
                          • 1970-01-01
                          • 2020-05-24
                          • 2017-09-10
                          • 1970-01-01
                          • 2020-05-20
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多