永发信息网

minGW有没有想VC那样的Debug版和Release版只分

答案:1  悬赏:10  手机版
解决时间 2021-11-07 23:35
  • 提问者网友:放下
  • 2021-11-07 06:29
minGW有没有想VC那样的Debug版和Release版只分
最佳答案
  • 五星知识达人网友:酒安江南
  • 2021-11-07 07:40
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[-] 启用帧指针省略
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯