Does Qt 5.15 support OpenSSL 3.x?
-
@QuantumTransistor I've never linked with openssl dynamically, so can't really help with that. Try changing Lib path to point towards .so/.dll files instead and see if that works.
-
I used OpenSSL 3 to build Qt 5.15.10 successfully, but at runtime, I faced problems:
qt.network.ssl: QSslSocket: cannot resolve EVP_PKEY_base_id qt.network.ssl: QSslSocket: cannot resolve SSL_get_peer_certificate Build version: "OpenSSL 3.1.1 30 May 2023" Run version: "OpenSSL 3.1.1 30 May 2023" Supports SSL: true
Finally, porting changes from Qt 6 to 5 results in a successful build and run. 🎉
Read my gist for steps -
@seyed - I used the patch from your gist and was able to successfully build and use Qt 5.15.10 with OpenSSL 3.1.2 using
-openssl-runtime
. Thanks!! 🎉 -
I hope to avoid rebuilding Qt + patches. Will Qt release a 5.15.x update that will allow compilation against openssl 3 ?
-
@ocgltd according to a comment on this bug report, OpenSSL 3 is supported with Qt 5.15.13 onwards. If you are using the open-source version, this should be available 9 March 2024 (one year after the commercial release date).
-
@QuantumTransistor
Openssl works with 5.15.13 (open source) but we need to compiare with c++17 -
@piervalli what issue do you have with C++17 ?
Qt 5 requires C++11 and OpenSSL is C. -
@piervalli
Since https://en.cppreference.com/w/cpp/iterator/size states that C++17 onward is required forstd::size()
it ought be present. (You might show line #498 oftext\qlocale_win.cpp
so we know what the call looks like.) That implies either you are not setting for C++17 correctly or the MinGW does not have correct support for it. You might look in the appropriatestd::...
header file to see what is/is not there for this. -
@piervalli
Hang on, I see a problem!Go to that cppreference page. Look at the sample code. Go pick the various
c++17
compilers it offers. WithGCC 13.1 (C++17)
it compiles fine. But withGCC 5.2 (C++17)
I get the same error as you show.So which gcc is the MinGW supposed to emulate? You can go to https://godbolt.org/ and play with selecting different compilers, they include MinGW choices. The oldest they have is MinGW gcc 11.3.0, that seems to work (only errors on
std::ssize()
in that code, which requires C++20, fair enough). -