windows下使用mingw和msvc静态编译Qt5.15.xx

windows下使用mingw和msvc静态编译Qt5.15.xx

  1. 下载并安装相关依赖软件

    一般来说下载这三个工具就可以,记得要设置环境变量,当然你要编译MSVC版的安装Visual Studio2017,并且安装它。要编译mingw版本需要已经安装Qt版本。

  2. 下载Qt官方源码qt-everywhere-src-5.15.xx.zip (根据需要编译的版本进行下载),链接如下

//download.qt.io/official_releases/qt/5.15/

  1. 开始编译:

    • msvc2017编译

      1. 打开vs2017命令行工具,里面配置了vs的环境变量,这里不能用windows自带的cmd终端代替。image-20210117235423970

      2. 切换到Qt源码路径,执行命令:

        image-20210118000101580

        configure.bat -static -prefix "D:\Qt\Qt5.15xx_msvc2017_static" -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
        
        configure.bat 
         -static //指明是静态编译
         -prefix "D:\Qt\Qt5.15xx_msvc2017_static" //指明安装的目录
         -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 //多核编译
        

        生成makefile文件之后就可以调用make编译器进行编译了,msvc版本的make编译器是nmake。nmake是不支持多线程编译的,单线程编译的话时间长的令人发指,推荐使用Qt在windows下专门的编译器jom,QtCreator使用的就是jom编译器,加上-j xx(电脑支持的线程数)爽歪歪。

        image-20210118001222029

        Qt自带的jom编译器路径是 D:\Qt\Qt5.14.2\Tools\QtCreator\bin\jom.exe,如果不能识别jom命令请添加路径到环境变量。如果是旧版本的Qt可能没有带jom,此时可以从Qt官网下载:

      3. 接下来执行 nmake & nmake install(使用jom的话用 jom -j xx &jom -j xx install代替)

      image-20210118000823503

      接下来就是漫长的等待,最后编译好的Qt版本在 -prefix 设置的目录下,本人16线程全开,make的时间是20多分钟,但是install的时间很长,可能是没加 -j 参数的原因🎅

    • mingw编译

    1. 打开Qt的mingw命令行工具,image-20210118002414865

    2. 切换到Qt源码路径,执行命令:

      configure.bat -static -prefix "D:\Qt\Qt5.15xx_mingw_static" -confirm-license -opensource -debug-and-release -platform win32-g++ -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp,这里不截图了,参数介绍同上,主要是修改编译平台win32-g++.

    3. 使用jom 编译jom -j xx &jom -j xx install

    4. 等待ing,a few moments later… 一个崭新的Qt静态版本诞生了

    如何配置编译好的版本到QtCreator网上的教程很多,这里就不做搬运工了~