C++ Visual Studio 2017,带VS 2015命令提示符+;vcvarsall无效+;找不到nmake

C++ Visual Studio 2017,带VS 2015命令提示符+;vcvarsall无效+;找不到nmake,c++,command-line-interface,visual-studio-2017,cl,C++,Command Line Interface,Visual Studio 2017,Cl,我已将Visual Studio 2017与14.0 platfrom tools一起安装 问题是:nmake未被识别为命令。我已尝试通过在VS2015 x64命令提示符下运行vcvarsall来设置环境,例如,使用以下命令: vcvarsall x86_amd64 上述命令无效,并显示以下错误: 脚本使用错误。正确的用法是: vcvarsall[选项]或 vcvarsall[选项]存储或 vcvarsall[选项][版本号]或 vcvarsall[选项]存储[版本号],其中[选项]为:x8

我已将Visual Studio 2017与14.0 platfrom tools一起安装

问题是:nmake未被识别为命令。我已尝试通过在VS2015 x64命令提示符下运行vcvarsall来设置环境,例如,使用以下命令:

 vcvarsall x86_amd64
上述命令无效,并显示以下错误:

脚本使用错误。正确的用法是: vcvarsall[选项]或 vcvarsall[选项]存储或 vcvarsall[选项][版本号]或 vcvarsall[选项]存储[版本号],其中[选项]为:x86 | amd64 | arm | x86 | amd64 | x86 | amd64 | U arm何处 [版本号]是完整的Windows 10 SDK版本号或 “8.1”以使用windows 8.1 SDK


我自己找到的解决方案是使用位于

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\
您需要从VS 2015 x64命令提示符运行此批处理文件

 C:\Program Files (x86)\Microsoft Visual Studio 14.0
是平台工具版本14.0的路径

每个受支持的平台都有一个单独的文件夹,在本例中是amd64

Visual Studio 2015命令提示符与平台工具版本14.0一起安装


运行该命令后,将设置环境

这是为VS2017安装的VS2015工具集安装的命令提示符快捷方式的一个已知问题

VS2017更新3(v15.3)在已安装的命令提示()中添加了一个新参数

<> VisualStudio(VisualC++命令提示符)的开发命令提示通过初始化代码VisualC++ 2015工具包(V140)的命令提示环境添加了支持,通过<代码> -vcVassWiver=14 < /Cord>参数< /P> 基本上,将快捷方式复制到VS2017命令提示中,并将参数添加到复制的快捷方式中

vcvarsall x86_amd64 -vcvars_ver=14.0

对于要查找的更具体的版本,您可以深入了解命令文件,但鉴于命令提示的机制,最好将其添加到顶级提示中。

尝试使用大约以下命令实现另一个批处理文件(取决于您的路径)。运行此批处理文件后,应该会得到一个命令提示符,其中包含设置的变量和路径上的
nmake

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
call cmd

至少,这对我来说是可行的(除了在第二个命令中我启动了FAR管理器而不是普通的cmd)。

我的解决方案是@Niall解决方案的修改版本。我省略了“vscarsall”和“x86_amd64”部分。换句话说,作为快捷方式目标或在Windows运行窗口中运行以下内容对我很有用:

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" -vcvars_ver=14.0
这只是在末尾添加“-vcvars\u ver=14.0”的开始菜单快捷方式目标。我复制了“开始”菜单快捷方式,并将“-vcvars\u ver=14.0”添加到新的快捷方式中,它似乎可以工作

这就是“VS2017开发者命令提示符”的全部内容。对于“针对VS 2017的x64本机工具命令提示符”和“针对VS 2017的x86本机工具命令提示符”快捷方式,其工作方式似乎相同

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.0

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" -vcvars_ver=14.0

为什么不显示完整的错误消息?已更新。我已经找到了一个解决方案。我已经安装了最新的VS 2017版本15.3.3。没有可用的更新,您的解决方案不起作用,而我的解决方案起作用了?要使用的vcvarsall是用于VS2017工具集的,而不是VS2015工具集。如果这不起作用,那么您的安装可能已中断。这是一个新的更新安装,VS2017 x64命令提示符甚至无法将vcvarsall识别为命令。测试服务器正在更新VS,将提供更新。在我们的测试服务器上,默认情况下,x64原生VS 2017命令提示符上的vcvarsall也无法识别。从您上次的评论中,我不确定是否执行vsvarsall会产生与OP相同的错误,在这种情况下,听起来不像是VS2015工具问题,或者如果无法找到批处理文件,这是预期的,因为我不相信它在路径中。