24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2681  |  回复: 15
本帖产生 1 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

holmescn

金虫 (正式写手)


★ ★ ★ ★ ★
steincat(金币+15):谢谢指教! 2010-12-17 22:21:18
steincat(金币+6):再次谢谢! 2010-12-17 22:21:36
余泽成(金币+5, 程序强帖+1): 谢谢参与应助! 2011-02-20 18:38:52
linyujack 说的不正确。
所谓Debug版本,是说在.exe程序里包含了源程序的调试信息,比如符号表等。这样当你在程序里设置断点的时候,调试器能够定位到相应的语句。
另外,Debug版本,因为调试的需要,不对编译好的程序进行深度优化,甚至不优化,因为优化可能大乱源文件语句与汇编代码的对应关系,无法进行调试。

而Release版本就是完成了以上debug版本没有完成的任务,剔除了符号表,进行速度或体积上的优化。

通常来说release版本会比debug版本小。

而linyujack所说的,不是debug和release的区别,而是static和dynamic的区别。
任何编译型语言都需要一些链接库,而库的提供形式有两种:1 静态库, 所有的代码都放进最终的程序里,最后的程序就是所谓的绿色软件。 2 动态链接库。库代码单独放到一个文件里, 只有在最终运行的时候才加载相应的代码。所以,使用动态链接库的时候,由于有一部分代码在主程序以外,导致主程序显得很小。

所以最终软件发布的时候需要:
1 编译程release版本,并选择相应的优化选项
2 确定使用动态链接库还是静态的库。
2.1 当你使用的库很普遍,几乎任何电脑上都有安装的时候, 可以使用动态链接库,以减少程序的体积。但这通常没有绝对的保证。
2.1.1 如果你的程序调用了大量的库函数(我说的是种类,而不是次数),那可以包含这个库的动态链接库(DLL文件),随最终软件一同发布。而这个过程已经有N多的软件帮你完成,比如Windows Installer等。
2.2 如果你的程序很简单,而且想绿色运行,那就选择静态库,这样最终的程序体积会有所增大,但不需要任何安装就可以直接运行(需要通过DBMS访问数据库的除外)
2.2.1 如果你想发布绿色软件,又觉得软件体积太大,那么,请试试UPX这个软件,它是一个压缩软件,但压缩后的程序和原来没有任何区别(偶尔也会有点小麻烦,不过我还没有遇到过)

OK,我想我已经解释清楚了。至于如何选择编译方式,这个自己研究一下吧。
9楼2010-12-17 09:14:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 steincat 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见