QT4.8静态库编译方法
2024-07-20 本站作者 【 字体:大 中 小 】
最最初踏上QT之路是受到了XiaomaGee的指点,相比于常规的窗口程序开发,QT有着以下特点:
1、 优良的跨平台特性支持Win、Linux、Mac 不同的平台下只需重新编译即可使用
2、 面向对象
3、 丰富的API
4、 支持2D/3D图形渲染,支持OpenGL
5、 大量的开发文档无需像VC一样装几个G的MSDN
6、 XML支持
其实,仅仅是第一点,就足以让我从VC转向QT。并且在本人的学习过程中发现,QT可以很轻易就打造出漂亮的界面,实在是让我爱不释手。不论是打造一些实用小程序,或是开发上位机,QT都是很不错的选择!
之前用VC++的时候,只要是编译出来的exe,就可以放到大多数的电脑上运行,而QT不同,由于QT默认是动态编译,正常运行需要调用QT的标准库即.dll,因此要想脱离IDE单独运行,必须满足:将关联的dll拷贝至.exe同目录或system32文件夹内,或者在环境变量中添加QT标准库的路径。否则就会出现如下警告:
这就使得QT的通用性受到了局限,尤其是用QT开发上位机时,如果需要在某台电脑上观测数据,除了exe,还得拷贝一大堆dll过去,显得很麻烦,那么,有没有办法可以满足,仅需要一个,就可以在所有装有win系统下的电脑上运行呢?答案是肯定的!
这就需要将QT的标准库进行静态编译。
本人曾在网上查找了大量资料,经过各种尝试各种失败,最终完成了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收购,因此安装包中会有很多手机程序的开发组件,如果不需要,按照下面给出的配置,去掉不需要的组件即可
首先在这一页选择“Custom”
API部分全部去掉
“Development Tools”中选择“QT Creator”默认和“Desktop QT”中的MinGW版
个人判断:这个库用于QT的动态编译,选择安装,即可在今后实现:调试时使用动态库,方便快捷;发布时使用静态库,便于使用。
这里我又选择了一遍MinGW,保险起见:
2、 安装QT标准库
这里有一点要注意,安装前的最后一步需要选择MinGW的安装目录,在QTSDK文件夹下
选择mingw的文件夹即可
3、 安装Perl环境
一路狂点Next即可
步骤三:标准库的编译
1、 配置编译选项
1打开X:\Qt\4.8.0\mkspecs\win32-g++\ X为QT安装盘符
建议先备份一下
在QMAKE_LFLAGS后面加上 –static
并将QMAKE_LFLAGS_DLL后面的 –shared 改为 –static
保存并关闭
2将X:\Qt\4.8.0\bin 下的syncqt与 这两个文件删除或改名
否则在编译时会提示找不到perl环境,如下图所示
2、 开始编译
打开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 选择 如下图
底下的Version Name可以自己起我用的Qt 4.8.0 Static
返回Project界面,添加刚才选择的编译器
选择好之后,记得确认选择的是QT4.8.0的Release版本静态Debug版没有编译,所以选择该模式会出错
编译一下,进入工程目录,直接双击程序,完美运行!
至此,QT静态编译完成。
由于QT直接编译出来的exe体积较大,为了节省空间,便于保存与传播,可以压缩一下,这里选用UPX
拷贝至C:\Windows\System32目录下
即可出现下图
压缩比例为39.93% 可见效果还是非常可观的
至此,QT的静态库编译全部完成。
为了保证教程的准确性,我在写教程前,已将QT完整删除并重新安装编译,每完成一步就写一步的教程。我的编译方法未必是最好的,但是按照我的方法,保证可以成功!
猜你喜欢
战争养成游戏排行榜前五有哪些战争养成类手机游戏精选推荐
梦幻西游妙手仁心玩法介绍
使命召唤19现代战争2剧情模式第十五关怎么过使命召唤19现代战争2剧情模式第十五关通关方法
小米电脑助手实现小米6连接的操作方法
绝区零丽都导览任务拍照无法完成解决方法
燃情夏日,热血再燃映众显卡助力现代战争3第五赛季
王者荣耀英雄限时折扣一览
王者荣耀10什么英雄好
小森生活漆夜木在哪个森林漆夜木位置介绍
战场女武神敢达争锋对决露娜专用扎古勇士测评
2024去云南旅游最佳路线 云南旅游的最佳路线安排
2024最适合穷游的12个地方 一个人穷游去哪里好
2024桂林必去五个景点 桂林旅游必看景点
2024清明家庭旅游最佳去处 清明节去哪里玩比较好
张家界旅游必去景区 张家界旅游景点推荐
2024重庆旅游攻略 2024年重庆旅游景点
西安旅游攻略自由行路线推荐 第一次去西安旅游攻略
2024昆明旅游攻略景点大全 昆明有什么好玩的地方推荐
成都旅游必去十大景点推荐 四川成都最值得去的十大景点
2024山西旅游必去十大景点 山西必去景点攻略地