QT静态编译

来源:互联网 发布:ubuntu的浏览器字体 编辑:程序博客网 时间:2024/06/14 10:31
一般我们在学习QT的时候写程序用的都是动态编译,如果将动态编译出来的可执行文件直接发布的话,在别的机子是无法运行的。所以这里教一下大家如何配置QT的静态编译环境。
 
测试环境:Win7旗舰版SP1
首先最好将minGW加入环境变量,我的地址为D:\software\QT5.9.0\Tools\mingw530_32\bin
 
编译静态库:
1、我的QT是5.9.0的,所以要到官网下载该版本的源码:
http://download.qt.io/official_releases/qt/5.9/5.9.0/single/qt-everywhere-opensource-src-5.9.0.zip
下载后将其解压到任意位置,路径最好不带中文。
2、新建一个文件夹,用于存储编译后的静态库,我这里为D:\QT5.9.0_static
3、在解压后有源码的文件夹下(文件夹中有configure.bat文件),按shift+右键,选择“在此处打开命令窗口”,打开CMD。输入命令并执行:configure.bat-confirm-license -opensource -prefix "D:\QT5.9.0_static"-debug-and-release -static -platform win32-g++ -opengl desktop -no-angle-nomake examples -nomake tests -skip qtwebkit
4、上述命令执行完成后,执行mingw32-make,执行的时间比较长,我晚上跑的,睡一觉起来就好了。发现有提示错误,暂时无视掉。
5、执行mingw32-make install,一下就好了,但也有提示错误。
不难看出是编译QML库的时候出问题了,不过因为我还没用到QML库,又懒得下python,所以就不理它了,可能以后学到QML的时候再把这个补上。

这样静态库就编译完成了。


 
QT Creator配置:
1、打开QT Creator,工具——选项——构建和运行,找到QT Versions,手动添加,找到静态版本目录里面的qmake.exe,起个名字Qt_5.9.0_static。
然后在构建套件里添加,QT版本选择刚才建的Qt_5.9.0_static,调试器用不是None的那个。起个名字QT5.9.0_static。
2、在刚才编译的静态库目录中修改qmake配置,我的是D:\QT5.9.0_static\mkspecs\win32-g++
该目录下有个qmake.conf文件,是qmake生成makefile的基础配置文件。因为不是很了解哪些参数会被选上,我修改了release版肯定会用到的参数。将QMAKE_LFLAGS_RELEASE    = -Wl,-s修改为QMAKE_LFLAGS_RELEASE    =-static -Wl,-s。
3、将静态库添加到环境变量:
lib = D:\QT5.9.0_static\lib
Include =D:\QT5.9.0_static\include
4、编写代码,选择构建套件,然后编译release版就行了。

静态编译的版本要比动态编译的版本大,需要压缩体积的话可以用aspack进行压缩,压缩率还是不错的。


原创粉丝点击