QT5.6.1使用静态编译

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ninglu1989/article/details/83990649
   Qt项目编译一般使用的是动态编译,这使得一个即使很简单的项目也会需要一些qt的依赖库,使得发布版本的文件比较多,采用静态编译就不会有这些麻烦,不需要依赖库,只需要.exe文件就可以执行,简单方便。下面我就把Qt的静态编译的步骤详细的做一个介绍

1.安装qt5.6.1
qt-opensource-windows-x86-mingw492-5.6.1.exe
2.安装安装Perl, 下载地址:https://www.activestate.com/activeperl/downloads
安装时选择自动添加环境变量,如果没有勾选自动添加环境变量,需要手动perl的bin文件夹的路径添加到环境变量中。
3. 安装Python,Windows x86 executable installer 下载地址: https://www.python.org/downloads/,方法同样,需要将添加路径到环境变量中去。
4. 打开Qt 5.6 for Desktop (MinGW 4.9.2 32 bit)
5. 输入以下命令检查gcc编译器配置是否正确
gcc -v
6. 输入以下命令检查perl解释器配置是否正确
perl -v
7.输入以下命令检查python配置是否正确
python
按ctrl+z回车,退出python
8.在D:\ProgramFiles\Qt\Qt5.6\5.6新建一个文件夹mingw492_32_static
切换到Qt的源码目录
cd D:\ProgramFiles\Qt\Qt5.6\5.6\Src
运行命令:
configure.bat -confirm-license -opensource -platform win32-g++ -debug-and-release -static -prefix “D:\ProgramFiles\Qt\Qt5.6\5.6\mingw492_32_static” -qt-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-xcb -qt-xkbcommon -qt-freetype -qt-pcre -qt-harfbuzz -opengl desktop -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebengine -skip qtwebview -skip qt3d
注:这里配置的时候,跳过了qtwebengine、qtwebview、qt3d,如果需要这些模块可以去掉skip
编译大概需要三个小时左右
mingw32-make -j2
注:本处为2个线程编译,电脑好的可以开更多的线程,编译速度也更快
安装(需要30分钟左右,硬盘好的话会快点)
mingw32-make install
9.新增加静态编译
打开Qt Creator -> 工具 -> 选项 -> 构建和运行 -> Qt Versions
添加新的构建器。
10.关于QML的静态发布的注意事项
其实静态发布Quick/QML程序,大体上和静态发布Widgets差不多,只不过QML部分的一些库文件,是无法静态编译的,毕竟都称不上C++。
注意,本文中用到的套件是5.6.1静态编译,MinGW版本
(1)整理QML文件
我们依赖到的QML文件一般都存放在mingw492_32_static/qml目录下:
在这里插入图片描述在所在的项目下创建qml文件夹,将所需要的文件复制到qml中,并且将其中的.a静态库文件删除,毕竟不需要库文件,然后将qml文件夹添加到资源文件中;
添加资源文件的步骤:
当然这里我们不能手动一个个加,太麻烦了,右键qrc文件,选择 Add Existing Directory ,选择qml目录,这样整个qml目录已经里面所有文件夹,都被递归添加到qrc里面了。
在这里插入图片描述
回到main.cpp,再添加一行
engine.addImportPath( “:/qml/” );
选择release编译,得到exe文件
这样得到的.exe
文件就不需要任何依赖库就可以执行了,是不是发布的版本文件比动态编译的简单了很多;这样静态编译就完成了。这此之前的静态库编译可能会出现很多的问题,这还需要大家自己解决其中的问题,在此预祝大家都可以同过本次编译。

展开阅读全文

没有更多推荐了,返回首页