Windows Deployment and OpenSSL
-
Hi, I've been trying to solve this issue for days but I could come up with nothing.
I'm using QT Creator with Qt 6.2. Application works without any problems when I run it on creator. It also works when I click the .exe file in its directory. However, when I carry the .exe in another directory, even if I use windeployqt and carry the necessary OpenSSL dlls, application runs but openssl does not work.
When I run it from its directory, QSslSocket::supportsSsl() gives true and QSslSocket::sslLibraryVersionString() gives "OpenSSL 1.1.1k". When I run it from another directory, they give false and empty string.
Problem is I'm not sure from where QT gets the openssl library files when it's working because it runs smoothly even if I just add the include files without any libraries in .pro file. I tried to eliminate it from the path it's using for build and run, it runs without a problem with a build path that only includes "C:\Qt\Tools\mingw810_64\bin" and the run path only has "C:\Qt\6.2.0\mingw81_64\bin".
I tried dependency walker and it doesn't show the openssl dlls as required. Am I missing some configuration that is related to runtime?
And finally, I'm not sure if it's related but I couldn't manage to update Windows' openssl version, it's 1.1.1i. Does the application depend on Windows version of openssl?
-
Hi,
Dependency Walker won't help you there because OpenSSL is not linked in the pre-built binaries.
You can get OpenSSL using the installer/maintenance tool.
Check the dependencies of your libraries to see if you are not missing a runtime library.