这个答案主要集中在VS2013上。微软的文档http://msdn.microsoft.com/en-us/library/ms229859%28v=vs.110%29.aspx指出:
从 Visual Studio 2010 开始,您可能会看到多个命令提示符,具体取决于 Visual Studio 的版本和您安装的任何其他 SDK。例如,64 位版本的 Visual Studio 提供 32 位和 64 位命令提示符。(大多数工具的 32 位和 64 位版本是相同的;但是,少数工具会针对 32 位和 64 位环境进行特定的更改。)
它补充说,相当无益:
检查各个工具的文档以确定您应该使用哪个版本的命令提示符。
该页面http://msdn.microsoft.com/en-us/library/jj153218.aspx列出了五个这样的命令提示符:
- VS2013 的开发者命令提示符
- VS2013 ARM Cross Tools 命令提示符
- VS2013 x64 跨工具命令提示符
- VS2013 x64 原生工具命令提示符
- VS2013 x86 原生工具命令提示符
在我的机器上,只有第 1 个、第 3 个和第 5 个存在,它们分别启动:
%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\VsDevCmd.bat"" %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 12.0 \VC\vcvarsall.bat"" x86_amd64 %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"" x86
要检查环境变量,set
对第一个和“x86 Native”shell 运行命令会在我的机器上给出相同的结果。而 mmohamad 的回答 tp Difference between VsDevCmd.bat & vcvarsall.bat in VS2012同意这一点。
但是“x64 Cross”不同:不同之处在于(不包括Path
并LIBPATH
为简洁起见):
+ CommandPromptType=Cross
+ FrameworkDIR64=C:\WINDOWS\Microsoft.NET\Framework64
+ FrameworkVersion64=v4.0.30319
+ Platform=x64
- LIB=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86;
+ LIB=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB\amd64;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64;