散分,只有亲手触摸到Qt,才知道Qt的好!

老邓 2010-01-23 06:30:11
之前对Qt一直有排斥心理,但自从Qt从4.5版使用LGPL授权,以及Qt Creator的面世,又让我有了尝试Qt的念头。
于是使用VC2008编译静态版:upx压缩后,可以达到2MB以下;物理内存在最小化后可达到1MB左右,虚拟内存5MB,都在可接受范围内。
当然,如果使用MinGW编译,相应尺寸大小和内存占用要稍多一些。

建议正在寻C++ GUI库的朋友,亲自触摸下Qt,这是我使用MinGW 4.4.3编译好的所有Qt Demos,欢迎下载测试。也许看完了这些Demos,你也会动心的...^_^
下载链接:http://qts.googlecode.com/files/qtdemo.7z
文件大小:4307 KB

你会发现这些demos不依赖mingw10.dll以及libgcc_s_dw2-1.dll,这是为什么呢?
广告:因为我使用了MinGW-QP编译版本

没有压缩release版本,程序尺寸: 5.44 MB
内存占用
第一次运行: 10496 K 4984 K
最小化后: 1100 K 4984 K
恢复窗口: 6476 K 4988 K
再次最小化: 1092 K 4988 K

upx默认参数压缩后,程序尺寸: 2.28MB
内存占用
第一次运行: 13268 K 10548 K
最小化后: 1116 K 10548 K
恢复窗口: 6532 K 10548 K
再次最小化: 1104 K 10548 K

附录:VC和MinGW编译Qt的方法

增加环境变量:
QTDIR=D:\qt-everywhere-opensource-src-4.6.1
PATH=%QTDIR%\bin;%PATH%

一、VC只编译静态版本

静态CRT:
mkspecs目录,找到 win32-msvc2008 目录,编辑qmake.conf,将QMAKE_CFLAGS_XXXXXXX全改成静态。就是把MD改成MT,把MDd改成MTd。

配置:
configure -prefix D:\DengYC\LoveDEV\Qts -release -platform win32-msvc2008 -static -fast -opensource -no-exceptions -no-dsp -no-vcproj -no-qt3support -no-accessibility -no-rtti -no-opengl -no-gif -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -no-zlib -no-webkit -no-openssl -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-declarative -no-script -no-scripttools -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -qt-style-windowsxp -qt-style-windowsvista -nomake examples -nomake docs -nomake demos -nomake translations

编译:nmake
安装:nmake install

二、MinGW编译版本

配置:
configure -prefix D:\DengYC\LoveDEV\Qt -debug-and-release -platform win32-g++ -shared -fast -opensource -no-exceptions -no-dsp -no-vcproj -no-qt3support -no-accessibility -no-rtti -no-gif -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -no-zlib -no-webkit -no-openssl -no-dbus -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-declarative -no-script -no-scripttools -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -qt-style-windowsxp -qt-style-windowsvista -nomake examples -nomake docs -nomake demos -nomake translations

编译:mingw32-make
安装:mingw32-make install

如编译Qt4.6.1失败,可参考:http://bugreports.qt.nokia.com/browse/QTBUG-5670
for an unknown reason you must copy the headers mingw64\x86_64-w64-mingw32\include\stddef.h and mingw64\x86_64-w64-mingw32\includefloat.h to the Qt/inclue directory.
原因是找不到float.h中的函数定义,这是Qt自身的问题。

提示:
① 由于指定了-prefix,在配置完成后,一定要将mkspecs目录拷贝到-prefix指定的目录下,才能顺利编译。
② 使用MinGW编译后,可以使用strip将相关exe和dll减肥。在没减肥前库的体积接近900MB,而减肥后,只有160MB左右。

这是Qt,wxWidgets,WPF三者的Google趋势链接,值得一看:http://www.google.com/trends?q=Qt%2CwxWidgets%2CWPF&hl=zh-CN
...全文
4024 124 打赏 收藏 转发到动态 举报
写回复
用AI写文章
124 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyWind 2011-04-24
  • 打赏
  • 举报
回复
确实使用静态连接库省了很多dll依赖的麻烦,不需要带上mingw10.dll,libgcc_s_dw2-1.dll,qtcore4.dll,qtgui4.dll等等,缺点就是有点大大,我编译openggl的小程序一个就十几兆
lams3316 2010-06-30
  • 打赏
  • 举报
回复
我正打算学qt,谢谢老邓!
hootin 2010-03-01
  • 打赏
  • 举报
回复
MARK,学习...
chenzhp 2010-01-29
  • 打赏
  • 举报
回复
真厉害呀!
光脚快乐 2010-01-27
  • 打赏
  • 举报
回复
路过,看看,第一感觉不错
村过去 2010-01-27
  • 打赏
  • 举报
回复
mart!
需要是再看看
belie2008 2010-01-27
  • 打赏
  • 举报
回复
学习下了,感谢分享
Officesystem 2010-01-26
  • 打赏
  • 举报
回复
[Quote
=引用 25 楼 tian_zhi_dao 的回复:]
增长一下见识
[/Quote]
我也是
天王 2010-01-26
  • 打赏
  • 举报
回复
等写linux程序时 就看看QT
qdkfriend 2010-01-26
  • 打赏
  • 举报
回复
希望我来的不算晚,我是来拿分的。顶楼主。
cymlife 2010-01-26
  • 打赏
  • 举报
回复
QT还是不错的,我研究好几年了
jeam0402 2010-01-26
  • 打赏
  • 举报
回复
mark
williamvon 2010-01-26
  • 打赏
  • 举报
回复
支持
lllyyy2403 2010-01-26
  • 打赏
  • 举报
回复
[Quote=引用 90 楼 loaden 的回复:]
引用 87 楼 lllyyy2403 的回复:
lz的Demo我下载了,是文件名是qtDemo.7z的文件吗?怎么我打不开?是否需要什么特殊解压?

7-zip,WinRAR
[/Quote]
老大,我把文件改成qtDemo.7-zip还是不行啊,然后再把后缀名改成.zip或者.rar仍然不行啊。老大,能否麻烦发一个给我啊。lllyyy2403@sina.com
chary8088 2010-01-26
  • 打赏
  • 举报
回复
大哥,你怎么前两天搞了wxWidgets ,现在又开始QT了,,QT是好,收费啊
「已注销」 2010-01-26
  • 打赏
  • 举报
回复
mark,慢慢研读
YFLK 2010-01-26
  • 打赏
  • 举报
回复
做的真挺好!看来语言发展的太快了!
crystal_dark 2010-01-26
  • 打赏
  • 举报
回复
mark
lybor 2010-01-26
  • 打赏
  • 举报
回复
i mark
加载更多回复(103)

64,318

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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