【问题标题】:Visual Studio 2017: vcvars for toolset v140Visual Studio 2017:工具集 v140 的 vcvars
【发布时间】:2017-05-12 13:43:53
【问题描述】:

我安装了 Visual Studio 2017 和工具集 v140 和 v141。要使用v140 工具集,我需要通过vcvars 设置必要的环境。然而,运行必要的vcvars,我得到了各种错误。我正在从这个目录中获取vcvars - C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC - 因为我需要使用v140 工具集启动工作环境。

如果我运行vcvarsall,例如,然后vcvarsall.bat x86 或vcvarsall.bat x86_amd64 - 我得到以下错误:

脚本使用错误。正确的用法是:

vcvarsall.bat [option] 或
vcvarsall.bat [option] store 或
vcvarsall.bat [option] [version number] 或
vcvarsall.bat [option] store [version number]

其中 [option] 是:x86 | amd64 |手臂 | x86_amd64 | x86_arm | amd64_x86 | >amd64_arm
其中 [version number] 是完整的 Windows 10 SDK 版本号或 “8.1”使用windows 8.1 SDK

:存储参数集 支持商店的环境变量(而不是桌面) 发展。 :

例如:

vcvarsall.bat x86_amd64
vcvarsall.bat x86_arm store
vcvarsall.bat x86_amd64 10.0.10240.0
vcvarsall.bat x86_arm store 10.0.10240.0
vcvarsall.bat x64 8.1
vcvarsall.bat x64 store 8.1 :

请确保已安装 Visual Studio 或 C++ Build SKU。

如果我运行特定文件vcvars,例如vcvars32.bat,则会收到另一个错误:

错误:无法确定 VS Common Tools 文件夹的位置。

有没有人遇到过同样的问题,可以帮忙吗? 谢谢。

【问题讨论】:

  • 您确定 PATH 已设置吗? This 可能有帮助吗?
  • @StutiRastogi 路径 C:\Windows\system32 已写入环境变量 PATH。
  • 对我来说很好。我只能建议重新安装/修复,和/或确保安装了“Visual Studio Build Tools 2017”。
  • @Phil,我尝试安装 BuildTools 2017 并为 VS 进行“修复”。它没有帮助。该项目在 Visual Studio 中成功编译,但我需要使用“vcvars”启动环境。

标签: visual-studio visual-studio-2017


【解决方案1】:

我已经设法使用以下方法解决了这个问题。对于工具集v140vcvars 尝试从注册表(Visual Studio 14.0 安装目录)中获取所需的数据,但由于未能这样做,因此退出并出现错误。如果您将所需的值添加到 Windows 注册表,vcvars 将正常工作。如果工具集 v140 与 Visual Studio 2017 一起安装,则默认安装路径为 C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\。

您需要找到设置 Visual Studio 2017 安装目录的现有密钥(在我的情况下为 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7)并添加名称为 14.0 和值 C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\ 的密钥

【讨论】:

  • 在最新的更新中,他们一定改变了它。 Platform Tools 14.0 直接在 Program Files 中创建了一个名为“Microsoft Visual Studio 14.0”的文件夹,注册表中有正确的条目,但你猜怎么着,vcvars 仍然不起作用。
【解决方案2】:

正如微软论坛here中所述 修改 vcvarsall.bat 脚本似乎解决了安装最新 VS 工具的问题(它为我的安装做了)

如果链接失效:解决方案是注释第 8 行(或第 10 行,具体取决于文件开头是否有两个空行)

【讨论】:

    【解决方案3】:

    对于较新的 vcvars*.bat 文件还有一个额外的命令行参数:vcvars_ver。

    要使用带有 VS2017 的 VS2015 工具链设置环境,必须将 -vcvars_ver=14.0 添加到 new vcvars*.bat 调用。

    例如"c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat" x64 8.1 -vcvars_ver=14.0 使用 Windows 8.1 SDK 和 MSVC2015 工具链为 x64 设置环境。

    无需更改注册表中的任何值或修改已安装的批处理文件。

    来源:https://developercommunity.visualstudio.com/solutions/140023/view.html

    【讨论】:

      【解决方案4】:

      问题线是

      C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>CALL "VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.16 10.0.18362.0
      

      我刚刚去了C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build 并找到了vcvars64.bat。

      研究之后,我修改成这样

      REM @call "%~dp0vcvarsall.bat" x64 %*
      @call "%~dp0vcvarsall.bat" x64 
      

      摆脱有问题的14.16 10.0.18362.0 参数。 成功了。没有弄乱寄存器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-14
        • 1970-01-01
        • 2017-08-04
        • 2018-08-30
        相关资源
        最近更新 更多