Qt5编译(MinGW-w64)

最后更新:

参考资料

下载源码包

安装build工具并配置相关环境变量

  • D:\Qt\Tools\mingw810_64\bin
  • These tools are not needed to run Qt 5 applications, but they are required for building Qt 5 from source.
    • Perl - Install a recent version of perl (for instance (https://strawberryperl.com/) and add the installation location to your PATH.
    • Python - Install Python from the here and add the installation location to your PATH.

验证build工具是否正确安装

  • 打开cmd(不要关闭)
  • 输入
    1
    2
    3
    4
    5
    
     set PATH=D:\Qt\Tools\mingw810_64\bin;%PATH%
     gcc -v
     g++ -v
     perl -V
     python -V
    

设定文件夹

  • F:\Qt\5.15.11\src 源码目录qt-everywhere-opensource-src-5.15.11.zip解压,并改名为src,放置于F:\Qt\5.5.11\src
  • F:\Qt\5.15.11\build-mingw810_64 build目录
  • F:\Qt\5.15.11-static\mingw810_64 最后安装目录

编译

  • 建立F:\Qt\qt5mingw810_64.cmd文件,需设置好Qt源代码路径、mingw810_64路径(D:\Qt\Tools\mingw810_64\bin)

  • 建立cmd链接cmd-qt5mingw810_64,并运行

    • 比较后,本步骤主要用途为
      1. 开启cmd.exe /E:ON /V:ON
      2. 替代下文手动将Qt源码相关路径加入PATH
    • /E:ON 启用命令扩展 详见[cmd.exe启动参数说明]
    • /V:ON 启用延迟的环境变量扩展
  • 输入

    1
    2
    
    F:
    cd Qt\5.15.11\build-mingw810_64
    

    依上述定位到F:\Qt\5.15.11\build-mingw810_64 依次执行命令

    1
    2
    3
    
    ..\src\configure.bat -static -prefix "F:\Qt\5.15.11-static\mingw810_64" -debug-and-release -nomake examples -nomake tests -skip qtwebengine -opensource -opengl desktop -platform win32-g++
    mingw32-make -j16   #开启十六线程编译,根据自己电脑实际核心数调整
    mingw32-make install
    

编译(此段内容为历史记录,作废)

  • 在cmd中(上述不要关闭,否则要重新set PATH=D:\Qt\Tools\mingw810_64\bin;%PATH%)

  • 本步骤在2023-11-23编译时未使用,查看官网文档可将上一步替换优化如下

    • 建立F:\Qt\qt5mingw810_64.cmd文件,需设置好Qt源代码路径、mingw810_64路径
    • 建立cmd链接cmd-qt5mingw810_64,并运行
    • 比较后,本步骤主要用途为
      1. 开启cmd.exe /E:ON /V:ON
      2. 替代下文手动将Qt源码相关路径加入PATH
    • /E:ON 启用命令扩展 详见[cmd.exe启动参数说明]
    • /V:ON 启用延迟的环境变量扩展
  • 输入

    1
    2
    
    F:
    cd Qt\5.15.11\build-mingw810_64
    

    依上述定位到F:\Qt\5.15.11\build-mingw810_64 依次执行命令

    1
    2
    3
    4
    
    #当使用上述qt5vars.cmd文件时,可省略此三行命令,因为已经在qt5vars.cmd文件中执行
    SET _ROOT=F:\Qt\5.15.11\src
    SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
    SET _ROOT=
    
    1
    2
    3
    4
    
    ..\src\configure.bat -static -prefix "F:\Qt\5.15.11-static\mingw810_64" -debug-and-release -nomake examples -nomake tests -skip qtwebengine -opensource -opengl desktop -platform win32-g++
    mingw32-make   #2023-11-23实测很慢,可改为
                   #mingw32-make -j16    #开启十六线程编译,根据自己电脑实际核心数调整
    mingw32-make install
    

说明1

  • -static就是静态编译的意思,

  • -debug-and-release,则表示将调试版、发行版都进行编译。

  • -prefix 指定安装将会部署的位置,根据自己情况修改

  • -nomake examples 不需要编译示例

  • -nomake tests 不需要编译测试工程

  • -skip qtwebengine 暂时先不编译webengine模块,因为太大了

  • -opensource 开源版本

  • -confirm-license 是为了自动确认开源证书,免得到时暂停手动确认

  • -qt-zlib -ssl -icu 指示检测这些库,并在需要时使用

  • -opengl desktop 明确指示使用你windows上安装的opengl驱动来编译程序,但这样编译出的程序在别的电脑上运行时需要目标电脑上安装的opengl驱动能兼容你的程序

  • -platform win32-g++ 指明编译平台是windows,并使用mingw编译器

    • For Windows machines, either MinGW or Visual Studio toolchains can be used to compile Qt.
      1
      2
      
      configure.bat -platform win32-g++
      configure.bat -platform win32-msvc
      
  • -opengl desktop 切换到desktop版本的opengl,解决错误提示error:EGL/egl.h: No such file or directory

说明2

  • 等待配置完成后(其间要输入y同意协议),再运行命令mingw32-make mingw32-make -j16开始构建:
  • 然后就是慢慢等编译了,这个过程比较漫长,如果电脑配置较低,估计需要几个小时:
  • 编译完成后,继续运行命令mingw32-make install即可将编译好的静态库安装到前面我们所指定的目录中去:
  • 此时你就可以删除前面的build文件夹,释放110多G的空间,它已经没用了。

2023-11-23编译(已删除)

  • 环境:YPR-Desktop、Windows 11 pro 23H2、D:\Qt\Tools\mingw810_64\bin、需数小时更多、7.65GB

  • build文件约16.9GB,已删除

  • 未编译doc

2023-11-24编译

  • 环境:YPR-Desktop、Windows 11 pro 23H2、D:\Qt\Tools\mingw810_64\bin、约44分钟、7.65GB
  • 采用了qt5mingw810_64.cmd、采用了mingw32-make -j16
  • build文件约16.9GB,已删除
  • 未编译doc
  • 存档:7z(9-极限压缩)

2023-11-28编译(仅-release YPR-Desktop)

  • 环境:YPR-Desktop、Windows 11 pro 23H2、D:\Qt\Tools\mingw810_64\bin、约15分钟、932MB
  • 采用了qt5mingw810_64.cmd、采用了mingw32-make -j16
  • build文件约2.52GB,已删除
  • 未编译doc
  • 存档:7z(9-极限压缩)

2023-11-28编译(仅-release YPR-Server)

  • 环境:YPR-Server、Windows 10 pro 22H2、D:\Qt\Tools\mingw810_64\bin、约1.5小时、932MB
  • 采用了qt5mingw810_64.cmd、采用了mingw32-make -j24
  • build文件约2.52GB,已删除
  • 未编译doc
  • 存档:7z(9-极限压缩)

备注

  • qt-everywhere-opensource-src-5.15.11.zip用D:\Qt\Tools\mingw1120_64\bin编译,实测报错
     转载说明:请附上本文链接及上述版权声明。