问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Qt静态编译最佳实践:Win10 + MSVC + openssl

创作时间:
2025-01-21 20:37:57
作者:
@小白创作中心

Qt静态编译最佳实践:Win10 + MSVC + openssl

在软件开发中,有时我们需要将Qt应用打包成独立的exe程序,以便在没有Qt环境的机器上运行。本篇文章分享了Qt静态编译的最佳实践,涵盖了从环境准备到具体编译步骤的全过程。通过详细的步骤说明,你可以轻松实现Qt6.7.3在Windows 10环境下,使用MSVC 2022编译器以及openssl的支持,从而得到一个完全独立的exe程序。

01

一、环境准备

1. 安装Visual Studio 2022

访问Visual Studio官网下载安装包。选择Professional版或Community版(免费),安装时选择“使用C++的桌面开发”工作负载。

2. 安装Python

访问Python官网下载最新版本的Python安装包。安装时勾选“将Python添加到PATH”。

3. 安装Ninja和CMake

这两个工具通常已随Visual Studio安装。你可以在命令行中输入以下命令检查是否已安装:

cmake --version
ninja --version

如果没有安装,可以从Ninja官网CMake官网下载安装。

4. 安装openssl

访问openssl官网下载适用于Windows的openssl版本。选择“Win64 OpenSSL v3.0.8”版本并安装。

5. 下载Qt源码

访问Qt官网下载Qt 6.7.3的源码包(qt-everywhere-src-6.7.3.zip)。解压到指定目录,例如E:\Qt\6.7.3\Src。

02

二、配置与编译

1. 打开VS 2022 x64原生工具命令提示符

在开始菜单中找到“x64 Native Tools Command Prompt for VS 2022”并打开。

2. 配置环境变量

在命令提示符中输入以下命令,根据你的实际安装路径修改:

set PATH=E:\Qt\Tools\cmake_64\bin;E:\Qt\Tools\ninja;E:\Ruby33-x64\bin;E:\Perl64\bin;%PATH%;E:\msys64\usr\bin;
set OPENSSL_ROOT_DIR=E:\openssl-3.3.2\install_static
set OPENSSL_USE_STATIC_LIBS=ON

3. 修改编译配置文件

打开{qt_source_dir}\qtbase\mkspecs\common\msvc-desktop.conf,将所有-MD替换为-MT

4. 运行configure脚本

在命令提示符中输入以下命令:

cd E:\Qt\6.7.3\Src
mkdir build
cd build
..\configure -static -static-runtime -prefix "E:\Qt\6.7.3\msvc2022_64_static" -debug-and-release -platform win32-msvc -nomake examples -nomake tests -qt-zlib -qt-libpng -qt-libjpeg -opengl dynamic -openssl-linked

5. 编译Qt源码

cmake --build . --parallel 6

6. 安装Qt

ninja install
03

三、常见问题与解决方案

  1. 找不到python:确保Python已添加到系统PATH环境变量中。

  2. openssl链接错误:确认OPENSSL_ROOT_DIR路径正确,且已设置OPENSSL_USE_STATIC_LIBS为ON。

  3. 编译中断:尝试减少并行编译的线程数,例如改为--parallel 4

04

四、总结

通过以上步骤,你已经成功完成了Qt 6.7.3在Windows 10环境下的静态编译。静态编译的主要优势是生成的exe程序不再依赖外部动态库,便于部署和分发。但同时也要注意,静态编译会增加exe文件的大小,且可能影响第三方库的使用。在实际项目中,需要根据具体需求权衡选择静态编译或动态编译。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号