2009-06-01 126 views

Respuesta

69

Bueno, depende del idioma que está utilizando, pero en general son 2 configuraciones separadas, cada una con su propia configuración. De forma predeterminada, Debug incluye información de depuración en los archivos compilados (lo que permite una depuración sencilla), mientras que la versión por lo general tiene habilitadas las optimizaciones.

En lo que se refiere a la compilación condicional, cada uno de ellos define diferentes símbolos que se pueden verificar en su programa, pero son macros específicas del lenguaje.

16

La principal diferencia es cuando se compila en modo de depuración, también se crean archivos pdb que permiten la depuración (para que pueda recorrer el código cuando se está ejecutando). Sin embargo, esto significa que el código no está optimizado tanto.

+9

También puede recorrer el código en el modo de lanzamiento. –

+0

Los archivos pdb también se generan en modo de lanzamiento –

+0

-1: Esto es incorrecto: los archivos pdb también deben generarse para la compilación de lanzamiento, ya que es muy útil para depurar una aplicación que se bloquea de forma remota y realmente no agrega un alto costo de rendimiento. De hecho, es el valor predeterminado en VS – ceztko

92

depuración y lanzamiento son sólo etiquetas para diferentes configuraciones de soluciones . Puede agregar otros si lo desea. Un proyecto en el que una vez trabajé tenía uno llamado "Debug Internal" que se usaba para activar las funciones de edición interna de la aplicación. Puede ver esto si va al Configuration Manager... (está en el menú Build). Puede encontrar más información en MSDN Library en Configuration Manager Dialog Box.

Cada solución configuración entonces consiste en un grupo de configuraciones de proyecto. De nuevo, estas son solo etiquetas, esta vez para una colección de configuraciones para su proyecto. Por ejemplo, nuestros proyectos de biblioteca C++ tienen configuraciones de proyecto llamadas "Debug", "Debug_Unicode", "Debug_MT", etc.

La configuración disponible depende del tipo de proyecto que esté construyendo. Para un proyecto .NET, es un conjunto bastante pequeño: #define sy algunas otras cosas. Para un proyecto de C++, obtienes una variedad mucho más grande de cosas para ajustar.

En general, sin embargo, usará "Debug" cuando desee que su proyecto se genere con el optimizador desactivado, y cuando desee tener información completa de depuración/símbolos incluida en su compilación (en el archivo .PDB, generalmente). Utilizará "Liberar" cuando desee que el optimizador esté encendido, y cuando no incluya, quiere información de depuración completa incluida.

+0

Las ** configuraciones de proyecto ** se pueden editar haciendo clic con el botón derecho en un proyecto en SolutionExplorer y seleccionando Propiedades en el menú contextual. Para editar las configuraciones de depuración para la configuración del proyecto "Liberar", seleccione la pestaña "Depurar" en el lado izquierdo y seleccione "Liberar" con el cuadro combinado llamado "Configuración". => El uso de la etiqueta "Depurar" para una configuración de solución o proyecto puede ser engañoso ya que también se puede depurar la configuración de "Liberar". – Stefan

+0

Consulte también la siguiente pregunta sobre cómo habilitar/deshabilitar la optimización de compilación. https://stackoverflow.com/questions/1199204/how-can-i-disable-compiler-optimization-in-c (En VB.NET se puede encontrar en la pestaña Compilar => Opciones de compilación avanzada ...) – Stefan

+0

Si desea deshabilitar la creación de información de depuración para el modo de lanzamiento, puede hacerlo configurando la opción "Generar información de depuración" en Ninguno. Sin embargo, el depurador se adjuntará al iniciar la aplicación. Para incluso evitar eso ... necesita usar "Inicio sin depurar" (Strg + F5). – Stefan

Cuestiones relacionadas