在这个文章里有比较专业的解释http://blog.csdn.net/chenhu_doc/article/details/932305
本文章只是自己实验验证的一个记录。
自己的理解,Debug和Release就是不同编译选项集合的配置选项。
为方便新程序员调试和开发,不必深入了解编译器选项而设立的。
自己也可以建立新的编译配置选项,叫Debug2,Debug3都可以(http://msdn.microsoft.com/zh-cn/library/t1hy4dhz%28v=vs.90%29.aspx)。
下面就是VS2010中新建控制台程序默认Debug和Release的编译选项的比较。
从图中可以看出:
1,预编译的宏不一样,_DEBUG,NDEBUG。_DEBUG打开编译调试代码开关(主要针对
assert函数)。
2,输出文件路径不一样,/Fp,/Fa,/Fo,/Fd。
3,优化上的区别,debug编译上未优化。/O2 Relase运行最快选项。
/O2 maximize speed
/Od disable optimizations (default)
/Oi[-] enable intrinsic functions
4,/Zi,/ZI。/ZI 创建编辑继续数据库,这样在调试过程中如果修改了源代码不需重新编译。
/Zi enable debugging information
/ZI enable Edit and Continue debug info
5,/Gm 打开最小化重链接开关,减少链接时间。/Gm[-] enable minimal rebuild
下面的一些选项就是不晓得什么意思,以后有时间查查。
/Gy[-] separate functions for linker
/RTC1 Enable fast checks (/RTCsu)