首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问minGW有没有想VC那样的Debug版和Release版只分?多谢

2012-12-31 
请教minGW有没有想VC那样的Debug版和Release版只分?谢谢请教minGW有没有想VC那样的Debug版和Release版只分

请教minGW有没有想VC那样的Debug版和Release版只分?谢谢
请教minGW有没有想VC那样的Debug版和Release版只分?谢谢
[解决办法]
Release和Debug的区别主要在于优化上.而不是能否调试.
通常,Debug版本的程序是不优化的版本.这样编译出的程序性能要差一些.但可以原汁原味的表达代码的逻辑.并且由于不进行优化,在断点,栈,执行顺序等方面可以保持原有的代码结构.很多时候,Debug版本的代码中,还会加入一些方便调试的检查代码.这样就很方便调试.
而Release版本则会用比较多的优化选项.通常会选择最大化性能的优化.这样,编译器会在保持逻辑不变的情况下,自动调整代码的结构,顺序等等.这种情况下,调试的时候很难和原有的代码对照,除了看反汇编,几乎"没法"调试...

所有的优化编译器都有设置优化等级的选项.
gcc的常用选项:
-s //去除调试符号
-ggdb // 生成gdb的调试符号
-Os  // 最佳(小)大小优化
-Ot  // 最佳时间优化
-O2  // 一般最佳优化(这通常是GCC最高性能的优化选项)
-O0  // 禁止优化
-fomit-frame-pointer // 消除栈帧

VC的常用选项:
/Zi 启用调试信息
/Os 优选代码空间
/Ot 优选代码速度
/O2 最大化速度
/Ox 最大化优化
/Od 禁用优化(默认)
/Oy[-] 启用帧指针省略

热点排行