8年的坚持
小郭一直在努力

windows上Qt5.15+openssl1.1.1+msvs2022静态编译32位版本的笔记

本次编译采用的是vs2022社区版。

Openssl编译,qt5.15要求1.1.1的版本,这里下载的版本是1.1.1m的源码。

编译步骤:

(1)安装ActivePerl, 下载地址如:https://xiazai.zol.com.cn/detail/27/262734.shtml

安装perl成功后,在命令行里输入perl -v,可看到版本提示即可。

(2)安装vs2022后(或其他版本的)在开始程序菜单中单击 X86 Native Tools Command Prompt for VS 2022,打开命令提示符

(3)解压openssl源码,然后cd到源码目录下执行: perl configure no-shared VC-WIN32 no-asm –prefix=”D:\openssl\1.1.1m”

其中D:\openssl\1.1.1m表示最终安装的目录。

(4)编译nmake

(5)编译后安装 nmake install

然后到 D:\openssl\1.1.1m 目录下找到编译后的lib库。这个目录应包括include, lib, bin三个子目录。

Qt5.15.2编译,含静态链接openssl

(1)安装ActivePerl,如已经安装则忽略此

(2)安装vs2022后(或其他版本的)在开始程序菜单中单击 X86 Native Tools Command Prompt for VS 2022,打开命令提示符

(3)解压qt5.15.2的源码,然后cd到源码目录下执行:(D:/qt5.15.2/msvc2022-win32-static为最终安装目录)

configure.bat -static -prefix “D:/qt5.15.2/msvc2022-win32-static” -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake tools -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -mp OPENSSL_PREFIX=D:/openssl/1.1.1m OPENSSL_LIBS=”-llibcrypto -llibssl -lgdi32 -lWs2_32 -lwsock32 -ladvapi32 -luser32 -lcrypt32″ -openssl-linked -static-runtime -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview

静态链接openssl的重点是:-openssl-linked。其中OPENSSL_PREFIX=D:/openssl/1.1.1m指向我们前面编译好的openssl静态库主目录。

(4)编译,安装jom后多线程编译jom -j 4

jom下载:https://iso.mirrors.ustc.edu.cn/qtproject/official_releases/jom/jom_1_1_3.zip

(5)编译后安装jom install

漫长的等待,完成!

将qt5.15.2加入到QtCreator

(1)点击菜单 工具 => 选项: Kits => Qt Version,添加我们编辑的版本,选择qmake.exe即可。

(2)构建套件 中添加一个。 名称可以取Desktop Qt %{Qt:Version} MSVC2022 32Bit Static

编译器选择 Microsoft Visual C++ Compiler 17.0.. .(x86)  注意选这个x86的,因为我们编译的是32位。

我编译程序提示少头文件,于是我在Environment里面加入了:

INCLUDE=${INCLUDE};C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt

LIB=${LIB};C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x86

最后Qt版本选择我们刚加的,保存即可。

未经允许不得转载:小郭软件 » windows上Qt5.15+openssl1.1.1+msvs2022静态编译32位版本的笔记
分享到: 更多 (0)

小郭软件在线打字,快速提高打字水平!

去在线打字排行榜