Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia esencial entre las versiones de lanzamiento

La diferencia esencial entre las versiones de lanzamiento

La diferencia esencial entre los métodos de depuración y compilación 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.