Tag Archives: openssl

Building QT 6.3.0 for Windows with OpenSSL and C++20

Now QT doesn’t like backslashes in configure.bat parameters. Also I updated vcvarsall.bat path and added -c++std c++20: and tried static build with -static option:

CALL "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
set "CMAKE_ROOT=E:\PFiles\cmake-3.21.3-windows-x86_64\bin"
set "NINJA_ROOT=E:\PFiles\ninja-win"
set "PERL_ROOT=E:\PFiles\Strawberry\perl\bin"
set PATH=E:\PFiles\Python35;%PATH%
rem Check if the tools are in PATH
where perl.exe
where python.exe
where cmake.exe
where ninja.exe
set "MY_INSTALL_PATH=E:\Qt\Qt6.3.0\windows"
set CL=/MP
configure.bat -prefix %MY_INSTALL_PATH% -DQT_NO_EXCEPTIONS=1 -debug-and-release -force-debug-info -platform win32-msvc -opensource -confirm-license ^
-c++std c++20 -static -I "C:/Program Files/OpenSSL/include" -L "C:/Program Files/OpenSSL/lib"

Building OpenSSL 3.0.2 with MSVC 2022

Download OpenSSL sources and extract them with Bash:

tar -xvzf /c/Users/D-Ef/Downloads/openssl-3.0.2.tar.gz

Download NASM, open x64 Native Tools Command Prompt for VS 2022 and run the following commands:

set PATH=%PATH%;E:\PFiles\nasm-2.15.05
where nasm
set PATH=%PATH%;E:\PFiles\Strawberry\perl\bin
where perl
set MY_INSTALL_DIR=E:\libs\OpenSSL
perl Configure VC-WIN64A --prefix="%MY_INSTALL_DIR%" --openssldir="%MY_INSTALL_DIR%"

Compiling QT5.15.0 with OpenSSL support with MSVC2017 on Windows

First, I compiled and installed OpenSSL 1.1.1g in the same way as before:

set PERL_ROOT=E:\PFiles\Strawberry\perl\bin
set PATH=%PATH%;C:\PFiles\nasm-2.14.02-win64
perl Configure VC-WIN64A
set CL=/MP
nmake install

Compiling OpenSSL 1.1 with MSVC2017 for using with QT 5.13

QT does not work with OpenSSL 1.0 anymore. Versions QT 5.12.4 and above require OpenSSL 1.1, but fortunately OpenSSL 1.1 can be easily compiled with MS2017 as follows:

set PATH=%PATH%;C:\Perl64\bin
set PATH=%PATH%;C:\PFiles\nasm-2.14.02-win64
perl Configure VC-WIN64A

The key to the success is using ‘VS2017 x64 Native Tools Command Prompt‘, but not ‘VS2017 Developer Command Prompt’.

To make QT use OpenSSL, two dlls


should be copied to QT binary directory, for example, C:\Qt\Qt5.13.0\5.13.0\msvc2017_64\bin

How I compiled OpenSSL from sources with VS2015

I installed Perl, downloaded and extracted OpenSSL 1.1.0h and built 64 bit version in VS2015 x64 Native Tools Command Prompt with the following commands:

set PATH=%PATH%;C:\Perl64\bin
perl Configure VC-WIN64A no-asm

32 bit version can be built with VC-WIN32 configuration option as described in INSTALL:

on Windows (only pick one of the targets for configuration):
$ perl Configure { VC-WIN32 | VC-WIN64A | VC-WIN64I | VC-CE }
$ nmake
$ nmake test
$ nmake install

probably ‘A’ suffix means AMD and ‘I’ means something else, so we need ‘A’.