Details
-
Suggestion
-
Resolution: Cannot Reproduce
-
Not Evaluated
-
4.5.2
-
None
Description
libssl32.lib is generated when OpenSSL is built using MinGW. Qt looks for the library using the name ssleay32.lib and so it doesn't load. A small change would resolve this and allow both name versions to work:
Qt sources, specially, src/network/ssl/qsslsocket_openssl_symbols.cpp.
Around line 320 you'll find:
- ifdef Q_OS_WIN
QLibrary *ssleay32 = new QLibrary(QLatin1String("ssleay32"));
if (!ssleay32->load()) { // Cannot find ssleay32.dll delete ssleay32; return pair; }
The problem is when OpenSSL is compiled with MinGW the resulting dll
is named libssl32.dll. So I suggest teh code is changed so...
QLibrary *ssleay32 = new QLibrary(QLatin1String("ssleay32"));
if (!ssleay32->load()) {
// Cannot find ssleay32.dll
delete ssleay32;
//############
//before
//return pair;
//############
//############
//now
sleay32 = new QLibrary(QLatin1String("libssl32"));
if (!ssleay32->load())
//############
}
I was not able to reproduce this myself - my own OpenSSL generates the library with both names, apparently to retain backward compatibility with dependent applications.