g++有debug和release版本吗?

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

g++编译出来的都能调试?那是debug还是release?
...全文
1968 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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版吧。
回复
相关推荐
发帖
Linux/Unix社区
创建于2007-08-27

2.1w+

社区成员

Linux/Unix社区 应用程序开发区
申请成为版主
帖子事件
创建了帖子
2009-07-17 05:02
社区公告
暂无公告