g++有debug和release版本吗?

ocean1004 2009-07-17 05:02:16
只是一个宏而已吗?
那vc的debug和release有这么大的区别是怎么回事?
release速度比debug快是怎么回事?
release不能调试是怎么回事?

g++编译出来的都能调试?那是debug还是release?
...全文
2999 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dave888Zhou 2009-08-20
  • 打赏
  • 举报
回复
另外,你用gcc -g编译出程序后,不想再重新编译,但又想去掉程序中的调试信息,可以用strip命令,它能将可执行程序中的调试信息删除而无需重新编译程序
Dave888Zhou 2009-08-20
  • 打赏
  • 举报
回复
用gcc -g编译出的程序就相当于Windows中的Debug版,会在可执行文件插入很多调试信息(用gdb调试程序时就可以用到这些信息)。而不用-g选项编译出的程序就相当于Windows中的Release版,由于是发布版,没有插入调试信息,这样可执行文件的体积就比较小,性能也比较高。

这种区分版本的设计思想是一样的,只不过在Windows中具体插入的调试信息可能会有不同(具体的实现不同)。
ShowMan 2009-08-20
  • 打赏
  • 举报
回复
-g 就算debug版本。
strip 可以去掉很多信息。
fox000002 2009-08-20
  • 打赏
  • 举报
回复
vc 里 debug 和 release 的差别是调用 cl.exe 时传的参数不一样

差别主要是是否含调试信息,是否优化之类的

所以 g++ 也是可以实现的
ocean1002 2009-08-20
  • 打赏
  • 举报
回复
没有这个概念的。LZ是VC用多了。
ocean1004 2009-08-20
  • 打赏
  • 举报
回复
再试试,看有没有人来。
ocean1004 2009-07-18
  • 打赏
  • 举报
回复
windows里差别很大。不知道linux怎么样
ecsape 2009-07-17
  • 打赏
  • 举报
回复
-g选项告诉GCC产生能被GNU调试器(如gdb)使用的调试信息,以便调试用户的程序。
调试信息包含程序里的每个变量的类型、在可执行文件里的地址映射以及源代码的行号。

release比debug速度快可能是因为没有生成调试信息。不过个人认为速度应该区别不大。
ecsape 2009-07-17
  • 打赏
  • 举报
回复
编译时加-g可以用gdb调试,应该算是debug版吧。
ecsape 2009-07-17
  • 打赏
  • 举报
回复
编译时加-g可以用gdb调试,应该算是debug版吧。

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧