QT 静态编译配置环境

前面一直用默认的环境(动态方式)编写程序,生成的执行文件要和若干dll文件一起才能工作,今天捣鼓了一下,额外配置了静态环境,记录备忘,在Win XP3平台上。

最终的结果是,程序可以只生成一个exe文件,在其它未安装QT的机器上正常运行,限于环境,跨平台没试。


准备阶段

注意留有足够的安装空间,相当于装了两个编译环境,1个默认动态的,1个静态的,工程中可以选择使用,各有各的优点,大概2--3G左右:

1. 已经安装的QT5.3.1保持不动,所有文件路径:D:\Qt\Qt5.3.1目录下

2. 配置环境变量,以备编译用

include = D:\Qt\Qt5.3.1\Tools\mingw482_32\i686-w64-mingw32\include

lib = D:\Qt\Qt5.3.1\Tools\mingw482_32\i686-w64-mingw32\lib

3. 下载静态库,目前官网可用的版本: http://download.qt-project.org/official_releases/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.zip

解压到一个目录下,比如D:\downloads下


配置阶段

1. 建一个放静态QT版本的文件夹,我是和原先(D:\Qt\Qt5.3.1)放在共同的QT目录下,目录是D:\Qt\Qt5.3.1_Static

2. 从DOS命令行(开始--运行--输入cmd,回车进入DOS命令行)进入所解压的文件目录下,里面有config文件。

执行:configure-confirm-license -opensource -prefix "D:\Qt\Qt5.3.1_Static"-debug-and-release -static -platform win32-g++ -opengl desktop -no-angle-nomake examples -nomake tests -skip qtwebkit

如果你输入正确,就会看到屏幕不断滚动输出内容,一段时间后配置完成,我的机器慢,跑了十几分钟

3. 执行mingw32-make, 同样,如果你输入正确,就会看到屏幕不断滚动输出内容,一段时间后配置完成,我的跑了3个多小时,后面出现了一个python错误的提示,被我强关了。

4. 执行mingw32-make install, 大概1个多小时,到后面的停在一个cpp文件上,一直半个小时不动,被我强关掉。

 这个过程,我是用一个bat文件搞定的,在命令行上输入那么长的字符很麻烦,在d盘根目录上建一个文本文件,输入下面:

cd D:\downloads\qt-everywhere-opensource-src-5.3.1
configure-confirm-license -opensource -prefix "D:\Qt\Qt5.3.1_Static"-debug-and-release -static -platform win32-g++ -opengl desktop -no-angle-nomake examples -nomake tests -skip qtwebkit

然后存为static.bat,回到桌面,按Win键和R键,弹出运行对话框,输入cmd,回车,输入d:,进入d盘根目录,输入static.bat回车,然后看见屏幕滚动,你就可以去做你爱做的事了,然后就是等结束后继续输入mingw32-make,等结束后输入mingw32-make install

整个过程差不多3-4小时,看机器配置了。

解释下:D:\downloads\qt-everywhere-opensource-src-5.3.1为解压后的静态库源文件目录,D:\Qt\Qt5.3.1_Static为要把静态库按安装到的目录


测试阶段:

1.   打开QT, 工具-----选项-----构建和运行,找到Qt Versions,手动添加,找到静态版本目录里面的qmake.exe,起个名字Qt_5.3.1_static,在构建套件里添加,Qt版本选刚才建的Qt_5.3.1_static, 调试器用非none的那个,编译器用Mingw4.8.232 bit, 起个名称。设为默认。

2.   新建一个程序,运行测试,静态的比较慢,而且debug版的exe文件超大,我建的一个空白QDialog,debug后200多M,release版10M,然后用aspack压了下,4M多,在其他机器上,运行OK

3.   中间运行可能会出现  未定义的QApplication等错误,可以查看下程序目录下的make文件,应是找不到模块文件,注意在pro文件里将QT +=。。。相应的模块写正确,将环境变量include和lib改为静态库下面的相应目录上,增加一个path变量,我的

include=D:\Qt\Qt5.3.1_Static\include

lib=D:\Qt\Qt5.3.1_Static\lib

path = D:\Qt\Qt5.3.1_Static\bin;D:\Qt\Qt5.3.1\Tools\mingw482_32\bin

编译通过。


博客自带的编辑器不是很好用,打字半天,终于完成,有错别字见谅,不必较真,明白意思即可。


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值