2012-07-27 6 views
6

Qual è la differenza tra "prompt dei comandi di Visual Studio x64 Win64", "prompt dei comandi di Visual Studio X64 Cross Tools" e "prompt dei comandi di Visual Studio" che appaiono nel menu di Visual Studio 2010 nel pulsante Start?Qual è la differenza tra varie shell di comando in VS2010?

Per la risposta più utile, cerchiamo di essere chiari sul mio livello di ignoranza: sono più vicino a noob di guru a qualsiasi Microsoft o IDE in generale. Esperto di lunga data in Linux, fonte di modifica in un editor di testo semplice, Makefile fatti a mano, ecc.

Sono sicuro che le differenze sono semplici, forse "ovvie" per chiunque abbia una modesta esperienza in VS2010.

+0

probabilmente solo le variabili di ambiente, ma non so quali estemporaneo; prova a eseguire 'env' e confronta i risultati – Frobzig

+1

@Frobzig: In una shell di comandi di Windows, il comando che vuoi è 'set', non' env'. –

risposta

4

I file batch diversi regolare PATH, LIB, INCLUDE e LIBPATH in modo che sia possibile eseguire cl.exe e altri strumenti di creare facilmente.

+0

Ma perché tre varianti? – DarenW

+8

Dopo aver eseguito la versione x64 su una macchina a 64 bit, è possibile creare file di oggetti a 64 bit e collegarsi a librerie a 64 bit senza specificare alcun percorso assoluto perché sono tutti nelle variabili di ambiente. Gli strumenti incrociati servono per creare binari a 64 bit su una macchina a 32 bit e l'ultimo per i build a 32 bit. – IronMensan

+4

Questa dovrebbe essere la risposta, non un commento. – DarenW

1

Questa risposta si concentra principalmente su VS2013. documentazione http://msdn.microsoft.com/en-us/library/ms229859%28v=vs.110%29.aspx stati di Microsoft:

partire con Visual Studio 2010, è possibile visualizzare più prompt dei comandi, a seconda della versione di Visual Studio ed eventuali ulteriori SDK che avete installato. Ad esempio, le versioni a 64 bit di Visual Studio forniscono prompt dei comandi a 32 e 64 bit. (Le versioni a 32-bit e 64-bit di maggior parte degli strumenti sono identici, ma un paio di strumenti apportare modifiche specifiche per ambienti a 32-bit e 64-bit.)

aggiunge, piuttosto inutilmente:

Controllare la documentazione per i singoli strumenti per determinare quale versione del prompt dei comandi si dovrebbe utilizzare.

La pagina http://msdn.microsoft.com/en-us/library/jj153218.aspx elenca cinque tali prompt dei comandi:

  • Developer Command Prompt per VS2013
  • VS2013 sbarra orizzontale Prompt dei comandi strumenti
  • VS2013 x64 Croce Prompt dei comandi strumenti
  • VS2013 x64 Prompt dei comandi degli strumenti nativi
  • VS2013 x86 nativo Prompt dei comandi strumenti

Sulla mia macchina, solo il 1 °, 3 ° e 5 ° di queste sono presenti, e lanciano rispettivamente:

% COMSPEC%/k "" C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ VsDevCmd.bat "" % comspec%/k "" C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ VC \ vcvarsall.bat "" x86_amd64 % comspec%/k "" C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ VC \ vcvarsall.bat "" x86

Per controllare le variabili di ambiente, eseguendoIl comandoper le prime shell "x86 native" restituisce i risultati identici sulla mia macchina. E la risposta di mmohamad tp Difference between VsDevCmd.bat & vcvarsall.bat in VS2012 concorda con questo.

Ma "x64 Croce" è diverso: la differenza è (escluso Path e LIBPATH per brevità):

+ 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; 
Problemi correlati