Qt for Windows:静态发布QML开发的程序

概述


之前写了一篇,讲如何静态编译Qt5.9.0,链接如下:

http://blog.csdn.net/wsj18808050/article/details/72862478

现在趁热打铁,再说下如何以静态方式,发布QML程序。

其实静态发布Quick/QML程序,大体上和静态发布Widgets差不多,只不过QML部分的一些库文件,是无法静态编译的,毕竟都称不上C++。

注意,本文中用到的套件是5.9.0静态编译,MinGW版本


整理QML库文件


这些QML库文件都存储在一个qml目录,在我电脑上那就是 C:\Qt\Qt5.9.0_MinGW_static\qml。如下图,在 C:\Qt\Qt5.9.0_MinGW_static\qml\QtQuick\Controls.2 中存储的就是Controls2库依赖的一些QML文件。

这里写图片描述

我们要做的,就是把这所有的qml库文件,添加到qrc中,再设置一下QQmlApplicationEngine的importPath就行了。

我新建一个Controls2的工程,并且把qml目录完整的拷贝了过来。记得删除qml目录中的.a文件,我们这里不需要这些静态库。

这里写图片描述

删除完.a文件后,qml文件夹中有725个文件,3.5MB大小。看起来还可以,全部添加到qrc里。

这里写图片描述

当然这里我们不能手动一个个加,太麻烦了,右键qrc文件,选择 Add Existing Directory ,选择qml目录,这样整个qml目录已经里面所有文件夹,都被递归添加到qrc里面了。

这里写图片描述

添加后效果如下:

这里写图片描述

回到main.cpp,再添加一行

engine.addImportPath( ":/qml/" );

效果如下:

这里写图片描述

选择release编译,得到exe文件


运行exe


在Win10中运行,看起来没有问题
这里写图片描述

拷贝到纯净Win7中运行,也没问题
这里写图片描述

猜你喜欢

转载自blog.csdn.net/wsj18808050/article/details/72865917