I am running Qt 5.7.1 (MSVC 2015, 32 bit) with Qt Creator 4.2.0. I have a problem with QSslSocket
. I am getting the following errors:
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
I have gone to the following location openssl github and downloaded the zip file. I have moved the "libeay32.dll" and "ssleay32.dll" files to my release directory, and I am still getting these errors. Is there anyone who has gotten the QSslSocket
working that can give me steps to get the socket working or has any suggestions?
You need to Add support to OppenSSL manually, since android dropped the support of it, and i am using QT 5.9 and its not make it for you so its your mission to create openSSL lib
You can download it directly here https://wiki.openssl.org/index.php/Binaries
or here https://indy.fulgan.com/SSL/
and then copy these filed and include them to your project
That should work correctly
Or you can generate your
libcrypto.so
andlibssl.so
using this script , just follow it step by step https://github.com/ekke/android-openssl-qtBy combining existing answers here and some research I managed to make it work with MSVC2017 x64 compiler:
{Your_Qt_Folder}/{Qt_version}/msvc2017_64/bin
I ended up here via Googling around. In my case, I was getting this error on random machines because they were missing the correct versions of
libeay32.dll
andssleay32.dll
. It's "random" because some computers have these loaded inPATH
from other software and some do not.I fixed this for Qt Creator by adding the DLLs to the
bin
folder of my Qt install, and I fixed this on distributions by including the aforementioned DLLs in my distribution.The DLLs should be the same or similar to the version of OpenSSL that Qt was compiled with in the first place. If you didn't compile it yourself, starting in Qt 5.4 you can query this with
QSslSocket::sslLibraryBuildVersionString()
. (Credit: https://stackoverflow.com/a/42297296/1666676)Don't forget that your 64-bit apps should have a 64-bit version of the DLLs, and 32-bit apps should have 32-bit DLLs so you don't have the same problem as this guy.
Additional notes:
sslLibraryBuildVersionString()
returned "OpenSSL 1.0.2o". I use 1.0.2p for my distributions.libcrypto-1_1*.dll
andlibssl-1_1*.dll
starting in OpenSSL 1.1.0. Standard Qt distributions don't yet use those as of Sept. 2018.Hope this helps the next person. Sorry for resurrecting an old post.
Copy these two file to path: 'C:\Qt\Tools(msvc/mingw){version}\bin'
I solved this problem.
Download and install v1.0.2s <<--(
libeay32.dll
,ssleay32.dll
) at https://slproweb.com/products/Win32OpenSSL.htmlCopy
libeay32.dll
andssleay32.dll
Find
QtNetwork*.dll
in your Qt folder. In my case, path isC:\Qt\Tools\QtCreator\bin
.Paste
libeay32.dll
andssleay32.dll
inC:\Qt\Tools\QtCreator\bin
.