Windows10+VS2022从源码编译Qt5.15.5

操作步骤

1、下载安装QT5编译必要的工具
2、下载QT5源码并按需修改配置文件
3、进行动态库和静态库的编译

安装VS2022在这里插入图片描述

下载安装Perl

下载 Strawberry Perl 的64位Portable版本并解压
Strawberry Perl 下载

下载安装Ruby最新本版

目前最新版本是rubyinstaller-3.0.3-1-x64.7z 下载后解压

Ruby 下载

下载Qt5.15.5源码并解压

Qt5.15.5 下载

注意: 下载的软件解压到非中文目录(vs2022集成的python不需要这一步)

添加Perl ,Ruby以及gnuwin32到Path环境变量(gnuwin32工具包含在QT源文件根目录下),工具路径如图所示

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开cmd,输入echo %path% 查看系统环境变量path信息
在这里插入图片描述
cmd输入:perl --version、ruby --version 以及 flex --version回车执行,正确输出各个工具版本信息则编译工具链配置完成。

开始编译

这里演示动态库编译和静态库编译(推荐QT使用方式是动态库的方式,虽然需要携带几个dll,但是这种方式是LGPL许可协议中商业许可的。如果使用静态链接打包QT库到单个可执行文件中,有着诸多的商用限制,具体查看相关的协议许可)

首先是QT的32位动态库编译,在左下角开始菜单中,查找打开 Visual Studio 2022文件夹下的 x86 Native Tools Command Prompt for VS 2022 Current,(编译64位库则打开x64 Native Tools Command Prompt for VS 2022 Current,编译32位库和64位库只有此处不同),cd命令进入到源文件根目录下,按行依次执行

configure -prefix “d:\qt5” -shared -release -nomake examples -nomake tests -skip qtwebengine -opensource -confirm-license
nmake
nmake install
上边的出错,就用下边的这个
configure -confirm-license -opensource -debug -qt-sqlite -qt-zlib -qt-libpng -qt-libjpeg -nomake tests -no-compile-examples -nomake examples

-prefix 代表构建目录,是编译完成后,头文件和库文件的输出路径,建议这里的文件夹名全英文,否则可能会在最后nmake install 报copy命令语法不正确的错误
-shared -static 表示生成动态或静态库,不指定此参数默认是动态库
-release 生成release发布版,或指定 -debug调试版
-nomake 指定不编译输出的子文件夹
-skip 指定跳过编译的子模块
-opensource 表示编译开源版本,相对的是 -commercial ,表示编译商业版本
-confirm-license 表示确认许可协议
经过长时间的等待,在 prefix 构建目录下得到编译出来的QT头文件和库文件

静态编译(这里只是演示),重新编译建议删除整个源码目录并重新从压缩包解压,并重新指定或清除 prefix 构建库目录。静态库编译其他步骤与动态库编译相同,只需要修改configure命令中的 -shared 为 -static

configure -prefix “d:\qt5-s” -static -release -nomake examples -nomake tests -skip qtwebengine -opensource -confirm-license
nmake
nmake install
上边的出错,就用下边的这个
configure -confirm-license -opensource -static -qt-sqlite -qt-zlib -qt-libpng -qt-libjpeg -nomake tests -no-compile-examples -nomake examples

QT静态库的编译需要注意编译选项/MD 、 /MT要和开发项目中引用的其他库相匹配。如果要修改此编译选项,可以在QT源文件根目录下的 qtbase\mkspecs\common\msvc-desktop.conf 中修改

QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MD
QMAKE_CFLAGS_DEBUG      = -Zi -MDd

或者

QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MT
QMAKE_CFLAGS_DEBUG      = -Zi -MTd

8、QT子模块的编译
这里只演示编译QT中子模块qtbase(只需要这个模块就可以完成QT中最主要的GUI功能的开发),其编译与整个QT的编译大体相同,打开x86 Native Tools Command Prompt for VS 2022 Current,cd命令进入到QT源文件根目录,按行依次执行命令

configure -prefix “d:\qt5-qtbase” -shared -release -nomake examples -nomake tests -opensource -confirm-license
nmake module-qtbase
cd qtbase
nmake install

编译qtbase模块的时间会比整个QT少得多。qtbase静态库的编译同样也只需要修改 -shared 为 -static,这里不赘述。

编译成功后,添加到QtCreat

在这里插入图片描述
D:\QtStaticBuild-IDE\qt-everywhere-src-5.15.5\qtbase\bin

在这里插入图片描述

使用jom多线程编译Qt

jom多线程编译

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值