vscode visual tag studio color code closing close brackethighlighter autoclose visual-studio command-line

visual-studio - visual - vs code autoclose html



Usando ''cl'' de Visual Studio desde una lĂ­nea de comando normal (7)

Visual Studio 2003 y 2005 (y tal vez 2008 por lo que sé) requieren que el usuario de la línea de comandos se ejecute en el ''Símbolo del sistema de Visual Studio''. Al iniciar este símbolo del sistema, establece varias variables de entorno que el compilador de C ++, cl, usa al compilar.

Esto no siempre es deseable. Si, por ejemplo, quiero ejecutar ''cl'' desde Ant, me gustaría evitar tener que ejecutar Ant desde el ''Símbolo del sistema de Visual Studio''. La ejecución de vcvars32.bat no es una opción, ya que el entorno establecido por vcvars32.bat se perderá cuando se ejecute cl (si se ejecuta desde Ant).

¿Hay alguna manera fácil de ejecutar cl sin tener que ejecutar desde el símbolo del sistema de Visual Studio?


Cree su propio archivo por lotes (digamos clenv.bat) y llámelo en lugar de cl:

@echo off :: Load compilation environment call "C:/Program Files/Microsoft Visual Studio 9.0/VC/vcvarsall.bat" :: Invoke compiler with any options passed to this batch file "C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe" %*

Ahora se puede invocar clenv.bat como cl.exe, excepto que primero cargará primero las variables de entorno necesarias.


El archivo por lotes vcvarsall.bat que ejecuta el símbolo del sistema de Visual Studio simplemente trata de mantener las rutas y las variables de entorno del sistema limpias y agradables (y es importante si tiene varias versiones de Visual Studio).

Si está contento limitando su configuración a una versión y teniendo una ruta larga y un conjunto de variables de entorno, transfiera estas configuraciones (manualmente) a las variables de entorno del sistema (Mi PC | Propiedades --- o Win-Pause / Break).

¡Recomendaría contra esto sin embargo!


El truco es usar siempre el archivo batch de vcvars correcto. SI tiene instalada una sola versión de VisualStudio, no es un gran problema. Si está tratando con múltiples versiones como yo, se vuelve muy fácil ejecutar una compilación de MSVC ++ 14 en una consola que se configuró con un archivo MSVC ++ 15 vcvars. Puede que funcione o no, pero lo que sea que obtengas será diferente de lo que estarías creando desde VisualStudio.

Hemos abordado ese problema in terp derivando el archivo vcvars adecuado del compilador elegido y siempre configurando el entorno internamente para la invocación de la herramienta. De esta manera, siempre tiene el archivo vcvars correcto para el compilador que está utilizando.

Solo para reiterar: recomiendo encarecidamente que no intente duplicar manualmente lo que el archivo vcvars hace por usted. Es probable que te pierdas algo o lo entiendas lo suficiente como para que parezca que funciona mientras realizas algo ligeramente diferente de lo que querías.


Lo que hacen los archivos por lotes vcvars32 o vsvars32 no es ciencia de cohetes. Simplemente configuran PATH, INCLUDE, LIB y posiblemente las variables de entorno LIBPATH en valores predeterminados razonables para la versión del compilador en particular.

Todo lo que tiene que hacer es asegurarse de que esos elementos estén configurados correctamente para su Ant o makefile (antes de invocarlos o dentro de ellos).

Para INCLUDE y LIB / LIBPATH una alternativa para establecer esos elementos en variables de entorno es pasar esos ajustes a la línea de comando como parámetros explícitos.


Los compiladores se pueden usar desde la línea de comandos (o archivos make) como cualquier otro compilador. Las principales cosas de las que debe ocuparse son las variables de entorno INCLUDE y LIB, y PATH. Si está ejecutando desde cmd.exe, puede ejecutar este .bat para configurar el entorno:

C: / Archivos de programa / Microsoft Visual Studio 9.0 / VC / vcvarsall.bat

Si intenta utilizar los compiladores de un archivo MAKE, Cygwin, MinGW o algo así, debe configurar las variables de entorno manualmente. Suponiendo que el compilador está instalado en la ubicación predeterminada, esto debería funcionar para el compilador de Visual Studio 2008 y el último SDK de Windows:

Agregar a RUTA:

  • C: / Archivos de programa / Microsoft SDKs / Windows / v6.1 / Bin
  • C: / Archivos de programa / Microsoft Visual Studio 9.0 / VC / Bin
  • C: / Archivos de programa / Microsoft Visual Studio 9.0 / Common7 / IDE

Añadir a INCLUDE:

  • C: / Archivos de programa / Microsoft SDKs / Windows / v6.1 / Include
  • C: / Archivos de programa / Microsoft Visual Studio 9.0 / VC / include
  • C: / Archivos de programa / Microsoft Visual Studio 9.0 / VC / atlmfc / include

Agregar a LIB:

  • C: / Archivos de programa / Microsoft SDKs / Windows / v6.1 / Lib
  • C: / Archivos de programa / Microsoft Visual Studio 9.0 / VC / lib

Estos son los mínimos, pero deberían ser suficientes para cosas básicas. Estudie el script vcvarsall.bat para ver qué más puede desear establecer.


Mi versión de abrir la línea de comandos de Visual Studio para Visual Studio Command Prompt en visual-studio-2010 . Usado internamente para construir una biblioteca / proyecto y luego realizar algunos pasos adicionales con los archivos DLL resultantes.

Copie estas líneas en su Compile and execute other steps.cmd archivo Compile and execute other steps.cmd o similar.

@echo off REM Load Visual Studio''s build tools call "%ProgramFiles(x86)%/Microsoft Visual Studio 10.0/VC/vcvarsall.bat" x86 REM Choose what you want to do, 1 or 2 by (un)commenting REM 1. Add your cl.exe (or msbuild.exe or other) commands here REM msbuild.exe MyProject.csproj REM cl.exe REM custom-step.exe %* REM pause REM 2. Open a normal interactive system command shell with all variables loaded %comspec% /k

En esta versión del guión, "me quedo" en el modo de línea de comando interactivo después. Comente con REM %comspec% /k para usar solo el script para fines no interactivos.


Simplemente puede ejecutar el archivo por lotes que establece las variables usted mismo. En VS08 está ubicado en: -

C:/Program Files/Microsoft Visual Studio 9.0/VC/vcvarsall.bat