2012-06-07 9 views
10

En VS2010, un programa de consola one line hello world C++ que utiliza la configuración de proyecto predeterminada genera más de 30 archivos de archivos intermedios de compilación en su directorio de salida. Archivos Obj, archivos pch, ilk, log, buildstate, idb, manifiesto incrustado y archivos rc y no menos de 18 archivos tlog.¿Configurar VS2010 para construir un proyecto de C++ en un directorio de salida razonablemente limpio?

Nada de esto es realmente resultado, para una aplicación de consola exe los únicos archivos que son salida genuina son el propio exe y el archivo pdb.

Así que mi pregunta es esta: ¿Hay alguna forma de configurar VS2010 para compilar toda esta basura en un directorio intermedio y enviar solo las cosas útiles al directorio de salida?

+0

http://stackoverflow.com/questions/4970918/msvc2010-how-to-build-a-clean-output-directory –

+3

Ya lo hace: si crea un nuevo proyecto de aplicación de consola C++ en Visual Studio 2010 y compilarlo, las salidas de compilación a dos lugares: $ (ProjectDir) \ $ (Configuración), que tiene los archivos de compilación intermedios, y $ (SolutionDir) \ $ (Configuración), que tiene tres archivos: el .exe, el .pdb y una .ilk que el enlazador requiere para el enlace incremental (si deshabilita el enlace incremental, este archivo no se compilará). ¿En qué se diferencia este comportamiento de lo que está pidiendo? –

+0

Si no tiene un directorio separado para la solución (y si la solución es solo un proyecto, ¿por qué lo haría?), En su lugar, simplemente descarga todo directamente al directorio de salida. Dicho esto, sigue siendo interesante saber que si tiene un directorio separado para la solución, se comporta de manera más sensata, así que gracias por eso. – Neutrino

Respuesta

6

En Visual Studio, abra el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Propiedades ... En el cuadro de diálogo Páginas de propiedades, vaya a Propiedades de configuración -> General. Las dos primeras propiedades controlan en el que el resultado de generación va:

  • Directorio de salida: Este es el directorio en el que se coloca la salida versión final (.exe, .pdb, .ilk)

  • Directorio intermedio: este es el directorio en el que (la mayoría) se coloca todo lo demás.

Si se utiliza el diseño de proyecto típico, en el que el proyecto se encuentra en una carpeta bajo la carpeta de soluciones, estas propiedades se pueden configurar de manera que los dos directorios son diferentes. Puede, por supuesto, configurarlos para colocar el resultado donde lo desee.

+0

Utilizo esta técnica, y además defino Intermedio para que sea '% TEMP% \ $ (Nombre de la solución) \ $ (Nombre del proyecto) \ $ (Nombre de configuración)' - esto saca a los OBJs y otros completamente del árbol de fuentes. –

+0

@MikeC - buen truco, pero ¿no te refieres a: $ (TEMP) \ $ (SolutionName) \ $ (ProjectName) \ $ (ConfigurationName)? – bavaza

+0

@bavaza - si% TEMP% no funciona, entonces sí, debe tener razón; Ya no trabajo donde tuve esa configuración, y por eso no puedo verificar. –

1

se puede ir a:

Proyecto-> Propiedades-> Construir Evento-> Pre-Build de comandos Evento

Proyecto-> Propiedades-> Construir Evento-> posterior a la generación de comandos de eventos

aquí puede script de línea de comandos para todos sus trabajos de limpieza o copia y así sucesivamente.

+0

Una sugerencia agradable, pero sería tedioso hacer todo de forma manual. –

+0

lo siento por mi mala EN, ¿necesita explicar los comandos cmd para limpiar? –

+0

Sí, pero sería genial si hay algo así como una función oculta en VS para eliminar todos estos archivos después de que se complete la compilación. –

Cuestiones relacionadas