最最初踏上QT之路是受到了XiaomaGee的指点,相比于常规的窗口程序开发,QT有着如下特色:html
一、 优良的跨平台特性(支持Win、Linux、Mac 不一样的平台下只需从新编译便可使用)小程序
二、 面向对象学习
三、 丰富的API测试
四、 支持2D/3D图形渲染,支持OpenGLspa
五、 大量的开发文档(无需像VC同样装几个G的MSDN)debug
六、 xml支持3d
其实,仅仅是第一点,就足以让我从VC转向QT。而且在本人的学习过程当中发现,QT能够很轻易就打造出漂亮的界面,实在是让我爱不释手。不管是打造一些实用小程序,或是开发上位机,QT都是很不错的选择!调试
以前用VC++的时候,只要是编译出来的exe,就能够放到大多数的电脑上运行,而QT不一样,因为QT默认是动态编译,正常运行须要调用QT的标准库(即.dll),所以要想脱离IDE单独运行,必须知足:将关联的dll拷贝至.exe同目录(或system32文件夹内),或者在环境变量中添加QT标准库的路径。不然就会出现以下警告:xml
这就使得QT的通用性受到了局限,尤为是用QT开发上位机时,若是须要在某台电脑上观测数据,除了exe,还得拷贝一大堆dll过去,显得很麻烦,那么,有没有办法能够知足,仅须要一个exe文件,就能够在全部装有win系统下的电脑上运行呢?答案是确定的!htm
这就须要将QT的标准库进行静态编译。
本人曾在网上查找了大量资料,通过各类尝试各类失败,最终完成了QT4.8最新版本的库编译。现将整个步骤,从软件安装开始,整理出来供你们参考与交流。
PS:这里选用的是Windows系统下的QT SDK做为开发环境,若是用VS编译,仅需在个别步骤稍做修改便可,本人不用VS好久,因此没有亲自测试。
步骤一:下载软件安装包
一共须要下面3个安装包
一、 QT下载
地址:http://qt.nokia.com/downloads
下载QT SDK及QT Library
选择离线安装包
选择MinGW版的QT标准库(VS版的对号入座)
QT4.8的标准库编译须要用到perl
下载地址http://www.activestate.com/activeperl/downloads
步骤二:安装软件
一、 安装QT SDK
目前QT已经被Nokia收购,所以安装包中会有不少手机程序的开发组件,若是不须要,按照下面给出的配置,去掉不须要的组件便可
首先在这一页选择“Custom”
API部分所有去掉
“Development Tools”中选择“QT Creator”(默认)和“Desktop QT”中的MinGW版
我的判断:这个库用于QT的动态编译,选择安装,便可在从此实现:调试时使用动态库,方便快捷;发布时使用静态库,便于使用。
这里我又选择了一遍MinGW,保险起见:)
二、 安装QT标准库
这里有一点要注意,安装前的最后一步须要选择MinGW的安装目录,在QTSDK文件夹下
选择mingw的文件夹便可
三、 安装Perl环境
一路狂点Next便可
步骤三:标准库的编译
一、 配置编译选项
1)打开X:\Qt\4.8.0\mkspecs\win32-g++\qmake.conf (X为QT安装盘符)
(建议先备份一下)
在QMAKE_LFLAGS后面加上 –static
并将QMAKE_LFLAGS_DLL后面的 –shared 改成 –static
保存并关闭
2)将X:\Qt\4.8.0\bin 下的syncqt与syncqt.bat 这两个文件删除或更名
不然在编译时会提示找不到perl环境,以下图所示
二、 开始编译
打开Qt 4.8.0 Command Prompt软件,输入
configure –static –release –no-exceptions
PS:这个配置仅编译release版本,若是须要同时须要静态版的Debug版本,须要把-release 改成 –debug-and-release
回车后会有版本选择和用户协议,前后按”o”(Open Source) “y”(Yes)
…………耐心等待一会…………
配置完成后会出现下面这个画面:
————在开始这个步骤前,请确保你有至少2个小时的空闲时间————
接着输入 mingw32-make sub-src
回车………该干啥干啥去吧…………直到你看到下面这个画面:
PS:编译过程当中能够浏览网页,能够刷微博聊QQ,但不建议跑大型程序,不然会大幅下降编译速度!!
当你看到这个画面时,恭喜你,立刻就成功了~
步骤四:配置QT Creator
打开QT Creator新建一个工程,在Project界面点击下图所示的Manage按钮
点击ADD
进入目录X:\Qt\4.8.0\qmake 选择qmake.exe 以下图
底下的Version Name能够本身起(我用的Qt 4.8.0 Static)
返回Project界面,添加刚才选择的编译器
选择好以后,记得确认选择的是QT4.8.0的Release版本(静态Debug版没有编译,因此选择该模式会出错)
编译一下,进入工程目录,直接双击程序,完美运行!
至此,QT静态编译完成。
因为QT直接编译出来的exe体积较大,为了节省空间,便于保存与传播,能够压缩一下,这里选用UPX
拷贝UPX.EXE至C:\Windows\System32目录下
在cmd中输入upx(+空格)(+文件路径+文件名)(+回车)
便可出现下图
压缩比例为39.93% 可见效果仍是很是可观的
至此,QT的静态库编译所有完成。
为了保证教程的准确性,我在写教程前,已将QT完整删除并从新安装编译,每完成一步就写一步的教程。个人编译方法未必是最好的,可是按照个人方法,保证能够成功!
转自:http://www.uzzf.com/news/2131.html