本次编译采用的是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版本选择我们刚加的,保存即可。