使用 Visual Studio 建置 Qt 6

因为异端置这个是Qt作为图形界面开发的环境,所以在自己之前,异端曾经记录过建Qt 4.6.3的经验;不过后来,因为决定摆脱建置、工厂开发用Qt提供的Qt SDK,官方知识研究怎么自己建置了。

但是相对地,当引入GitLab CI/CD后,就变成了研究怎么在Windows Docker里面安装Qt SDK了。

开始玩这部分后,发现才Qt在这真的好极了……本来以为以为第一次后,以后就没有问题了,不过后来Qt一直修改他的程序安装,导致往往会弄弄要重建Docker镜像的时候,安装Qt SDK的剧本就废掉、要修改(2020/02)…

而后来呢,Qt更直接把必须安装程序拿掉,要使用线上安装版,然后下载速度又慢到不行……

所以后来呢,异端只好又开始研究怎么自己建置Qt了。

这次使用的版本是Visual Studio 2019、建置的Qt版本是Qt 6.1.0,原码可以从官方网站下载(页面、下载速度很慢)。

准备建置环境
官方的《Qt for Windows - Building from Source》,可知自己搭建了Qt SDK,除了需要Visual Studio 2019外,还需要以下工具:

CMake 3.16+(官网)
忍者(官网)
Perl(Heresy 这个是用Strawberry Perl)
Python 3(官网)
因为异端是通过Docker来构建Qt,所以这个需要的工具,也都写成Dockerfile来玩了~

下面就是可以拆建置 Qt 6.1.0 的 Dockerfile:

#转义=`
 
# 使用最新的 Windows Server Core 映像和 .NET Framework 4.8。
从 mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-20H2
 
# 恢复默认的 Windows shell 以进行正确的批处理。
SHELL  ["cmd", "/S", "/C"]
 
# 下载 Build Tools 2019 引导程序。
添加 https://aka.ms/vs/16/release/vs_buildtools.exe C:TEMPvs_buildtools.exe
添加 https://aka.ms/vs/16/release/channel C:TEMPVisualStudio.chman
 
# 安装构建工具,不包括已知问题的工作负载和组件。
运行 C:TEMPvs_buildtools.exe --quiet --wait --norestart --nocache ` 
     --channelUri C:TEMPVisualStudio.chman ` 
     --installChannelUri C:TEMPVisualStudio.chman ` 
     --installPath C:BuildTools ` 
     --add Microsoft.VisualStudio .Workload.VCTools ` 
     --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` 
     --add Microsoft.VisualStudio.Component.VC.ATLMFC ` 
     --add Microsoft.VisualStudio.Component.Windows10SDK.19041
 
# 安装 7-Zip
添加 https://www.7-zip.org/a/7z1900-x64.exe C:TEMP7z.exe
运行 C:TEMP7z.exe /S /D=C:7Zip
 
# 下载 CMake
添加 https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2-windows-x86_64.msi C:TEMPcmake.msi 
RUN  C:TEMPcmake.msi /qn
 
# 安装 Perl
添加 https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.msi C:TEMPstrawberry-perl.msi 
RUN  C:TEMPstrawberry-perl.msi /qn
 
# 安装 Python
添加 https://www.python.org/ftp/python/3.9.5/python-3.9.5-amd64.exe C:TEMPpython.exe 
RUN  c:temppython.exe /quiet InstallAllUsers=1 PrependPath=1
 
# 下载忍者
添加 https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip C:TEMPninja.zip 
RUN  C:7Zip7z.exe x C:TEMPninja.zip -y -oc:忍者
 
# 清理下载文件
运行 删除 C:TEMP* /q
 
# 添加路径
RUN  setx /M  "path" "%path%;c:ninja;C:7Zip;C:Strawberryperlbin;C:Program FilesCMakebin"
 
# 使用指定的任何其他命令启动开发人员命令提示符。
入口点 c:BuildToolsVCAuxiliaryBuildvcvars64.bat &&

之后只要执行:

docker build -t qtbuilder S:qtbuilder

就可以创建出一个名为「qtbuilder」的 Docker 镜像,可以支持建置 Qt SDK 了。

当然,如果不想用 Docker 来建置,也可以把上述软体都直接装在电脑上来建置,不过还记得路径、让系统能找到上述环境的程序执行就是了。

建置流程
准备建置

接下来,就是要开始构建了~这首先是Qt的原始码解压缩。

这里下载的档案是「qt-everywhere-src-6.1.0.zip」,假装是把它解压缩后的「s:qt-everywhere-src-6.1.0.0」。

然后,就是建立Docker的容器、在里面准备来构建了~

docker run -it --rm --isolation process --storage-opt size=64G 
           -v S:qt-everywhere-src-6.1.0 :c:code 
           qtbuilder cmd

这就是Qt的原始码对应到Docker内的c:code这个路径来做访问;所以如果路径不一样的话,请自行修改红字的部分。

另外要注意的,是因为建了Qt会需要大量的硬盘空间所以这篇文章也有通过「–storage-opt size=64G」这个,调高Docker内部的硬盘空间(预设应该是20GB的参数) )、否则建到自己的问题就会发生硬盘空间不足的问题;如果自己不想用自己的空间玩的话,那就要额外去控制音量映射、并相对的路径了。

在进入Docker后,则是先执行下面的指令:

mkdir c:build_debug c:build_release cd c:code_output
 
cd c: 
build_debug c:codeconfigure -prefix c:code_output -debug

cd c:build_release 
c:codeconfigure -prefix c:code_output -release

这边会建立三个资料夹,build_debug,build_release和_output,前面两个是用来放置建置过程的相关档案的,一个是调试版,一个则是发行版。

之后则是最后产生的Qt SDK档案,这个C:code里面是为了把最后需要的档案整理「s:qt-everywhere-src-6.1.0」这个从外部输入的资料夹里面;如果像另外两个数据夹一样直接删除:下话,一关闭docker就会全部消失了。

而配置的部分,则是通过 Qt 提供的脚本,来生成 CMake 所需要的文件;本文的「-prefix c:code_output 建置」是指定建置后库文件何时何地;最后面的「- debug」或「-release」则是告诉它要建置 debug 或 release。

如果喜欢建置调试、发布一个,只要选一个就好了。

其他的参数,则可以参考官方的文件。

开始建置

上面的配置完成后,就可以依序构建不同的版本了。

以调试板来说,就是执行:

cd c:build_debug
cmake --build 。
cmake --install 。

开始建置 Qt SDK 的调试了。

由于 Qt 制作了一个巧妙的模拟肥大的函式库,所以这个故事的建置过程会时间,建议找一个好一点的闲置电脑来跑。

其中,cmake --build是开始建置,建置完成后,建置好档案会散就是麻烦麻烦处理;接下来执行cmake --install,要求他把必要的档案、复制(安装)到指定的输出位置(_output),即可轻松使用。

而Heresy这个是意意debug和发布原版的输出设置成一样,在运行完之后,就可以把真实的灵感刻结果都一起了。

所以等debug版建置好后,只要再执行:

cd c:build_release
cmake --build 。
cmake --install 。

就可以建置发布版了。

当重新都完成后,就可以关掉 docker 了;此时,在「S:qt-everywhere-src-6.1.0_output」下就可以找到可以建置完成的 Qt 6.1.0 SDK 了~

有异端这件事构建出来的档案、整个资料大小高达2.6GB左右……恩,很安心呢~XD

附注:

下载的Qt 6.1.0里面的README还是写Qt5…orz
里面写的需求也不一样。

Qt 提供的配置虽然可以指定「-debug-and-release」要求同时建置调试和发布的版本;但尽管在建置(cmake build)的过程确实同时建置了两个版本,但在要求他把档案复制到输出路径的时候(cmake install),他只复制了版……
所以本文还是采用了复制构建却设置的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 使用QT框架需要安装QT插件和相关工具,可以按照以下步骤进行操作: 1. 下载并安装QT框架,可以到QT官网下载安装程序,选择安装包和自己的操作系统对应的版本。 2. 安装Visual Studio QT插件,可以在Visual Studio中打开“扩展和更新”窗口,搜索并安装QT插件。 3. 创建QT项目,可以在Visual Studio中选择“新建项目”,选择“QT”类别,然后选择适当的QT项目模板。 4. 配置QT项目,可以在项目属性中设置相关的QT选项,例如QT版本、模块、库等。 5. 编写和调试QT代码,可以使用Visual Studio的调试器和QT的API进行开发和测试。 在使用QT框架进行开发时,需要注意以下几点: 1. QT框架提供了丰富的GUI组件和功能库,可以方便地进行图形界面设计和开发。 2. QT框架支持多平台开发,可以在Windows、Linux、Mac等操作系统上进行开发和测试。 3. QT框架需要一定的学习和掌握成本,需要掌握QT的API和相关的开发工具和技术。 4. QT框架的开发效率和质量较高,可以提高开发效率和代码质量。 ### 回答2: 要在Visual Studio使用QT框架,您可以按照以下步骤进行操作: 1. 下载和安装QT:首先,您需要从QT官方网站(https://www.qt.io/)下载并安装QT框架。确保选择与您当前使用Visual Studio版本兼容的QT版本。 2. 安装QT Visual Studio Tools:QT提供了一个名为QT Visual Studio Tools的插件,可以使得在Visual Studio使用QT更加方便。安装完QT框架后,您可以从QT安装目录中找到这个插件并将其安装到Visual Studio中。 3. 创建一个新的QT项目:在Visual Studio中打开一个新的解决方案,选择“新建项目”并在模板中找到“QT”选项。选择合适的QT模板并点击“确定”以创建项目。 4. 设置QT Kit:在项目属性中,选择“QT”,然后点击“添加”以添加QT Kit。从已安装的QT版本中选择合适的Kit并点击“确定”。 5. 编写和构建QT项目:编写您的QT代码,并使用Visual Studio的调试和构建工具来构建和运行项目。您可以像在任何其他Visual Studio项目中一样使用调试器来调试您的QT应用程序。 6. 配置其他设置:根据需要,您可以配置其他设置,如项目的构建选项、部署选项等。您也可以根据需要添加其他依赖项和插件。 总结而言,使用Visual Studio开发QT项目需要先安装QT框架和QT Visual Studio Tools插件,然后创建一个新的QT项目并配置相关设置。最后,在Visual Studio中编写和构建您的QT代码,并使用调试器来调试您的应用程序。 ### 回答3: 使用Visual Studio开发Qt应用程序需要进行以下步骤: 1. 首先,确保已在系统中正确安装了Qt框架。可以从Qt官方网站下载Qt安装程序并完成安装。 2. 打开Visual Studio,并创建一个新的Qt项目。选择“文件”菜单,然后选择“新建”>“项目”,在模板中选择“Visual C++”>“Qt”>“Qt应用程序”。 3. 在弹出的向导中,输入项目的名称和位置,然后点击“确定”按钮。 4. 下一步是选择Qt版本。如果Qt在默认路径中安装,Visual Studio应该会自动检测到,否则可以手动浏览并选择正确的Qt版本。 5. 然后,可以选择要使用Qt模块。根据应用程序的需求,在这里选择所需的模块,然后点击“下一步”。 6. 在项目设置中,指定应用程序的名称、版本和其他属性。可以选择生成配置(Debug或Release)以及解决方案平台(x86或x64)。 7. 点击“完成”按钮后,Visual Studio将自动生成Qt项目的初始文件结构。 8. 接下来,可以在Solution Explorer中看到各个源文件和资源文件。可以根据需要添加/删除文件、编辑文件并编写Qt代码。 9. 运行项目之前,需要确保Visual Studio已正确配置Qt的环境变量。如果没有,请手动添加Qt的安装路径到“PATH”环境变量中。 10. 最后,点击Visual Studio的“开始调试”按钮或按下F5键来编译和运行Qt应用程序。 总之,使用Visual Studio开发Qt应用程序需要在创建项目时选择Qt模板,配置Qt版本和模块,然后编写Qt代码并运行项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mikes zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值