La diferencia esencial entre las versiones de lanzamiento
La depuración generalmente se denomina versión de depuración y contiene información de depuración sin ninguna optimización, lo que facilita a los programadores la depuración de programas.
El lanzamiento se denomina versión de lanzamiento y a menudo optimiza el programa para optimizar el tamaño del código y la velocidad de ejecución para que los usuarios puedan usarlo bien.
El verdadero secreto para depurar y publicar reside en un conjunto de opciones de compilación.
Cada opción se enumera a continuación.
(Por supuesto que hay otros, como /Fd /Fo, pero la diferencia no es importante y, por lo general, no causa errores en la versión de lanzamiento, por lo que no lo discutiré aquí.) / MDd /MLd o /MTd Utilice la biblioteca de tiempo de ejecución de depuración (versión de depuración de la biblioteca de funciones de tiempo de ejecución).
/Od desactiva el interruptor de optimización
/D _DEBUG es equivalente a #define _DEBUG. Active los modificadores de código de compilación y depuración (principalmente para la función de afirmación).
/ZI crea una base de datos "Editar y continuar" para que si el código fuente se modifica durante la depuración, no sea necesario volver a compilarlo. /GZ puede ayudar a detectar errores de memoria.
/Gm Active el interruptor de minimizar la vinculación para reducir el tiempo de vinculación. /MD /ML o /MT utiliza la versión de lanzamiento de la biblioteca en tiempo de ejecución.
El interruptor de optimización /O1 o /O2 hace que el programa sea más pequeño o más rápido.
/D NDEBUG desactiva la compilación condicional y el interruptor de código de depuración (es decir, la función de afirmación no se compila).
/GF fusiona cadenas duplicadas y coloca constantes de cadena en la memoria de solo lectura para evitar que se modifiquen.
De hecho, no existe un límite esencial entre Depurar y Liberar. Son solo un conjunto de opciones de compilación, y el compilador solo actúa de acuerdo con las opciones predeterminadas. De hecho, incluso podemos modificar estas opciones para obtener una compilación de depuración optimizada o una compilación de lanzamiento con declaraciones de seguimiento.