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