2012-07-27 8 views
6

¿Cuál es la diferencia entre "visual studio x64 win64 prompt de comando", "visual studio x64 cross tools command prompt" y "visual studio command prompt" que aparece en el menú de Visual Studio 2010 en el botón de Inicio?¿Cuál es la diferencia entre varios shells de comando en VS2010?

Para la respuesta más útil, seamos claros acerca de mi nivel de ignorancia: estoy más cerca de noob que gurú en cualquier cosa de Microsoft o IDEs en general. Experto en Linux desde hace mucho tiempo, fuente de edición en un editor de texto plano, Makefiles hechos a mano, etc.

Estoy seguro de que las diferencias son simples, quizás "obvias" para cualquier persona con experiencia modesta en VS2010.

+0

probablemente sólo las variables de entorno, pero no sé cuáles improvisada; intente ejecutar 'env' y comparar los resultados – Frobzig

+1

@Frobzig: en un shell de comandos de Windows, el comando que desea es 'set', no' env'. –

Respuesta

4

Los diferentes archivos por lotes se ajustan PATH, LIB, INCLUDE y LIBPATH para que pueda funcionar cl.exe y otras herramientas de construcción sencilla.

+0

¿Pero por qué tres variaciones? – DarenW

+8

Después de ejecutar la versión x64 en una máquina de 64 bits, puede compilar archivos de objetos de 64 bits y vincularlos con bibliotecas de 64 bits sin especificar rutas absolutas, ya que están todas en las variables de entorno. Cross Tools es para compilar binarios de 64 bits en una máquina de 32 bits y el último para compilaciones de 32 bits. – IronMensan

+4

Esa debería ser la respuesta, no un comentario. – DarenW

1

Esta respuesta se centra principalmente en VS2013. documentación http://msdn.microsoft.com/en-us/library/ms229859%28v=vs.110%29.aspx estados de Microsoft:

partir de Visual Studio 2010, puede ver varios símbolos del sistema, dependiendo de la versión de Visual Studio y cualquier SDK adicionales que haya instalado. Por ejemplo, las versiones de 64 bits de Visual Studio proporcionan instrucciones de comandos de 32 bits y de 64 bits. (Las versiones de 32 bits y de 64 bits de la mayoría de herramientas son idénticas, sin embargo, algunas herramientas hacen cambios específicos para entornos de 32 bits y 64 bits.)

añade, en lugar inútilmente:

Consulte la documentación de las herramientas individuales para determinar qué versión del símbolo del sistema debe usar.

La página http://msdn.microsoft.com/en-us/library/jj153218.aspx listas de cinco de estos símbolos del sistema:

  • desarrollador símbolo de sistema para VS2013
  • VS2013 cruceta comandos de las herramientas Herramientas
  • VS2013 x64 Cruz Símbolo del sistema de
  • VS2013 Indicador de comando nativo de Herramientas x64
  • VS2013 x86 Nativo Comandos de las herramientas

En mi máquina, sólo el primero, tercero y quinto de estos están presentes, y se lanzan, respectivamente:

% comspec%/k "" C: \ Archivos de programa (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ VsDevCmd.bat "" % comspec%/k "" C: \ Archivos de programa (x86) \ Microsoft Visual Studio 12.0 \ VC \ vcvarsall.bat "" x86_amd64 % comspec%/k "" C: \ Archivos de programa (x86) \ Microsoft Visual Studio 12.0 \ VC \ vcvarsall.bat "" x86

Para verificar las variables de entorno, ejecuteEl comandopara los shells primero y "x86 Native" da resultados idénticos de en mi máquina. Y la respuesta de mmohamad tp Difference between VsDevCmd.bat & vcvarsall.bat in VS2012 está de acuerdo con esto.

Pero "x64 Cruz" es diferente: la diferencia es (excluyendo Path y LIBPATH por razones de brevedad):

+ 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; 
Cuestiones relacionadas