zoukankan      html  css  js  c++  java
  • Qt最新版5.12在Windows环境静态编译安装和部署的完整过程(VS2017)

    我的个人博客:zhang0peter的个人博客

    为什么要静态编译

    在默认情况下,用QtCreator编译程序时,使用的是动态编译。编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。Qt官方不提供静态编译好的安装包,所以需要我们在自己的电脑上静态编译。而且exe文件会比动态编译的要小上很多。

    1.源码下载

    Qt最新版5.12.0的源码下载地址:qt-everywhere-src-5.12.0
    选择文件:
    在这里插入图片描述
    源代码压缩包文件789M,解压后有2.48G的大小。

    2. 编译工具下载

    Qt官方文档要求编译工具:Qt for Windows - Requirements Qt 5.12
    打开源码目录下的README文件,查看Windows环境下编译需要安装的工具:
    在这里插入图片描述

    ActivePerl

    ActivePerl下载地址:Download and Install Perl: ActivePerl | ActiveState
    ActivePerl
    默认安装时会添加ActivePerl到环境变量。
    测试添加是否成功:
    在这里插入图片描述

    Python

    下载Python,添加Python到环境变量。
    测试添加是否成功:
    在这里插入图片描述

    Ruby

    Ruby下载地址:RubyInstaller for Windows
    ruby
    安装时勾选添加到环境变量的选项:
    在这里插入图片描述

    编译环境选择

    在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。这两个环境不兼容,无法混合。你必须选择一个。
    这两者的区别如下:

    当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。

    我选择MSVC,打开安装VS时自带安装的MSCV:VS 2017的开发人员命令提示符

    在这里插入图片描述
    版权声明:本文为博主原创文章,转载请附上博文链接:Qt最新版5.12在Windows环境静态编译安装和部署的完整过程(VS2017)

    3.编译

    Qt编译官方文档:Building Qt Sources | Qt 5.12
    在D盘新建一个目录用来存放编译好的内容:D:qt
    在VS 2017的开发人员命令提示符的命令行里进入Qt源代码目录:
    在这里插入图片描述

    1.修改源码里的qtbasemkspecscommonmsvc-desktop.conf文件

    修改-MD为-MT
    在这里插入图片描述
    在这里插入图片描述
    D的意思是动态编译(dynamic),T的意思是静态编译(static)。
    这一步官方教程没有要求,但其他人的很多教程里都有写,我就加上了

    2.配置config文件:

    配置命令如下:

    configure.bat -static -prefix "D:qt" -confirm-license -opensource  -debug-and-release -platform win32-msvc  -nomake examples -nomake tests  -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp
    
    • 1

    具体含义如下:

    configure.bat 
    -static //指明是静态编译
    -prefix "D:qt" //指明安装的目录
    -confirm-license -opensource  //指明是开源版本的qt
    -debug-and-release //指明需要debug版和release版,可以单独选择release版
    -platform win32-msvc  //指明使用msvc编译
    -nomake examples -nomake tests  //不编译样例
    -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg //可选插件
    -opengl desktop 
    -mp //多核编译
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.make

    上面提到过在Windows上,有两个预构建环境可供选择:一个是MinGW,另一个是Microsoft Visual Studio(MSVC)。
    我选择的是msvc环境,使用命令nmake即可进行编译。

    nmake
    
    • 1

    但是MSVC自带的nmake没有多线程编译功能,有一个替代功能的软件jom可以进行nmake的多线程编译。
    jom的下载地址:Jom - Qt Wiki
    在这里插入图片描述

    运行命令:

    D:jom_1_1_3jom.exe  
    
    • 1

    make完成后源码和编译后的共有5.6G大小。

    4.make install

    因为jom是多线程的运行,但我需要用电脑,所以我使用nmake单线程install:

    nmake install
    
    • 1

    命令结束的截图:
    在这里插入图片描述
    QT的文件夹有3.3G的大小

    5.添加到Qt Creator

    ①添加Qt Versions:
    在这里插入图片描述
    ②新建一个构建套件,Qt版本选择刚添加的静态版,其他选项与动态版相同即可。
    在这里插入图片描述
    成功:
    在这里插入图片描述

    4.小结

    我的个人博客:zhang0peter的个人博客

    Qt5.12.0的静态编译的过程还算顺利,需要注意的是编译前要仔细阅读官方文档,毕竟很多教程不是最新的,但官方文档一般都是最新的。

  • 相关阅读:
    利用XSLT把ADO记录集转换成XML
    探讨SQL Server中Case 的不同用法
    模拟Windows升级页面特效
    上海,我的奋斗岁月(整理篇)[转帖强烈推荐大家读完]
    根据上排给出十个数,在其下排填出对应的十个数
    【转】从两个排序数列中找到两个数列组合起来中间大的数
    网络每一层的基本协议
    交换两个指针
    先序遍历建树
    反转单链表_字符串_数字
  • 原文地址:https://www.cnblogs.com/chinasoft/p/14176220.html
Copyright © 2011-2022 走看看