• 6527阅读
  • 5回复

难以抉择,static vs shared [复制链接]

上一主题 下一主题
离线sagaxu
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-29
四种发布方式

A: 静态C++运行库  +  静态QT库

B: 静态C++运行库  +  动态QT库

C: 动态C++运行库  +  静态QT库

D: 动态C++运行库  +  动态QT库

各有各的优缺点,到底该怎么选择呢?

从 QT特性支持, 发布体积,文件数量,运行兼容性  考虑
离线guyansrg

只看该作者 1楼 发表于: 2009-09-29
那要看你的实际需要来定。
离线xnmd2000
只看该作者 2楼 发表于: 2009-09-29
我用的是 C 方案~·
离线dbzhang800

只看该作者 3楼 发表于: 2009-09-29
我不喜欢折腾,就用默认的
离线sagaxu
只看该作者 4楼 发表于: 2009-09-29
方案确定,两种并存
动态C-Runtime + 动态Qt
静态C-Runtime + 静态Qt

分别用VC2008E编译了一下,静态体积很惊人,一个webkit就超过200M了,debug版的webkit更是接近500M之巨
动态编译版,体积要小一些,QtCore4.dll只有1.87M, QtNetWork4.dll只有618K,其它dll也对比了下,基本上都比自带的小一些
用vc2008重新编译,在一定程度上缓和了qt运行库体积大的问题,拿upx --best再压缩了一下,还能再减一半以上
不过upx之类工具,可能对稳定性造成伤害,可能引入潜在问题,需要严格测试之后,未发现问题才能使用
直接拿7zip打包,打包后体积也小了不少,小规模程序能控制在4M以内,这个结果已经很满意,比未经压缩的静态版(5M+)要小很多
(***以上小规模程序仅仅是  core+gui+network+qjpeg+qcncodec, 不包含其余东西***)

看来win32下,还是cl编译出来体积小一些,MinGW编译出来要大很多
离线wd007

只看该作者 5楼 发表于: 2009-09-29
这个心得不错,学习一下。

我觉得从发布的角度来说,动态编译可能常见一些,但是打包的时候也复杂一些。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个