Creo que entiendo la diferencia entre los modos de compilación Release y Debug. Las diferencias principales son que en el modo de depuración, el ejecutable producido no está optimizado (ya que esto podría dificultar la depuración) y se incluyen los símbolos de depuración.Modo de compilación: RelWithDebInfo
Al construir PCRE, una de las dependencias externas para WinMerge, noté un modo de compilación que no había visto antes: RelWithDebInfo.
La diferencia entre Debug y RelWithDebInfo se menciona aquí: http://www.cmake.org/pipermail/cmake/2001-October/002479.html. ejercicio: "RelwithDebInfo es bastante similar al modo Release. Produce código completamente optimizado, pero también crea la base de datos del programa e inserta información de línea de depuración para darle al depurador una buena oportunidad para adivinar dónde está en el código en cualquier momento. "
Esto suena como una muy buena idea, sin embargo, no es necesariamente obvio cómo configurarlo. Este enlace describe cómo habilitar esto para VC++: http://www.cygnus-software.com/papers/release_debugging.html
¿Me falta algo, o no tiene sentido compilar todos los códigos de versión como RelWithDebInfo?
No tiene que enviar información de depuración a sus clientes (ah, a menos que, como mencionó, para las plataformas donde está incrustado en los binarios) –
Con el compilador poniendo la información de depuración _besides_ el ejecutable (como VC), esto no es un problema. – sbi
Desarrollo de plataforma cruzada. Espero que las personas de Visual C++ entiendan las consecuencias del objetivo en otras plataformas. También recomiendo a los usuarios de cmake que utilicen la lista de correo de cmake, porque me parece que su documentación escrita está incompleta. – Juan