¿Cómo puedo hacer que la compilación de Visual Studio sea muy detallada?


98

Necesito controlar cada bandera, cada conmutador utilizado en el proceso de compilación por los binarios de Visual Studio. Intenté obtener un resultado detallado mediante el uso vcbuild, pero no pude.

¿Qué tengo que hacer para ver todo lo que Visual Studio realiza por mí? No es necesario obtener el resultado en la ventana de compilación. Cualquier lugar estaría bien.


Respuestas:


67
  1. Abra el cuadro de diálogo de propiedades del proyecto, luego elija

    Propiedades de configuraciónC / C ++General

  2. Cambiar la configuración de Suppress Startup BanneraNo

  3. Las cllíneas de comando se mostrarán en la ventana de salida.


1
Esto solo afecta al compilador, no al vinculador ni a los recursos.
user2284570

6
En VS2017, este 'truco' ya no parece funcionar. Sin embargo, la construcción en el indicador del desarrollador usando msbuild con la solución o el nombre de archivo del proyecto como argumento cli muestra la llamada cl con sus argumentos.
Emile Vrijdags

@EmileVrijdags Puedo ver perfectamente la clsalida del comando con VS2017 siguiendo esos pasos. Entonces el "truco" funciona para mí.
sobrino

150

Herramientas de menú → OpcionesProyectos y solucionesCompilar y ejecutarVerbosidad de salida de compilación del proyecto MSBuild : Diagnóstico


2
Esto no cambia nada. Sigo obteniendo el mismo resultado en la ventana de resultados.
Geo

3
Funciona bien para mí en VC10.
Abergmeier

2
@Geo entra en vigor una vez que reinicia Visual Studio.
absynce

@absynce, en VS 2017 esto no tiene efecto incluso al reiniciar Visual Studi0 2017. Estoy usando la edición de la comunidad VS 2017. Por lo tanto, esta funcionalidad no parece implementada correctamente en VS 2017.
Domingo

65

Visual Studio 2008:

Vaya al menú HerramientasOpciones, luego Proyecto y soluciones → Sección Crear y ejecutar . Tiene un cuadro combinado para verbosidad.

Opción del compilador C ++ (propiedades del proyecto):

  • Preprocesador: genera un archivo preprocesado para ver la unidad de traducción generada por el preprocesador
  • Avanzado - Mostrar incluye - muestra los nombres de los archivos incluidos en la salida del compilador

1
Esto no muestra marcas de compilación y vinculador, solo nombres de archivos que se están procesando. ¿Es posible ver los comandos exactos que se ejecutan o esto es imposible con VS?
stefanB

2
@stefanB: no necesitas banderas especiales para esto. Las líneas de comando para el compilador y la invocación del enlazador se pueden encontrar en el diálogo de opciones o en el registro de compilación que está escrito en el directorio intermedio.
Yakov Galka

8

Si está ejecutando MSBuild, puede establecer el indicador / v: diag.


¿Cómo ejecutaría MSBuild?
Geo

inicie el símbolo del sistema de Visual Studio (está en el menú Inicio), luego ejecute el proyecto de Visual Studio con: MSBuild {ProjectName}
Joe

por ejemplo, MsBuild myProject.csproj
Joe

Veo llamadas de MSBuild vcbuild, pero vcbuild no muestra los indicadores / interruptores que está usando.
Geo

Creo que esta es la respuesta adecuada. El simple hecho de desactivar la supresión de varios carteles no muestra todo. En particular, el paso de compilación de recursos era lo que estaba buscando.
Juan

5

En Visual Studio, vaya a su proyecto, haga clic derecho sobre él y seleccione propiedades. En Linker hay una opción de línea de comandos. Allí tienes todas las opciones y puedes agregar las personalizadas. Agregue /VERBOSEy al vincular Visual Studio se mostrará mucha más información.


1
Muestra más información, pero no muestra las herramientas que se llaman para compilar.
Geo

2
Visual Studio tiene una herramienta de creación llamada nmake. Puede exportar su proyecto a esos archivos MAKE y compilarlo desde una consola DOS msdn.microsoft.com/en-us/library/txcwa2xx(VS.80).aspx . La última vez que hice algo similar (pero usé CMake para generar los archivos MAKE de nmake) todos los comandos se imprimieron en la pantalla de la consola.
javier-sanz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.