简体   繁体   中英

Qt, WIndows and OpenSSL - Cannot Call Unresolved Function xyz

I've recently installed the ArcGIS Runtime SDK on my Windows 10 machine running Qt 5.9.1. When attempting to build a simple QWidget application using one of the ArcGIS templates, I get 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
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
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
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
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

This problem seems to be quite common-place however most of the Google results come up with answers for Linux systems.

I have done the following:

  • Downloaded and installed OpenSSL (from GnuWin32 OpenSSL)
  • Copied across the libeay32.dll and libssl32.dll to the build folder
  • Added the include path into the Qt pro file
  • Verified that network is in the QT += config section of the pro file

Yet none of the above has made any difference. I'm running MSVC 2015 32-bit kit.

you have to add static libraries to your project.

Find out libeay32.lib and libssl32.lib and add them to your project.

Refer

http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html

I think you need such two dll files:libeay32.dll and ssleay32.dll.I use the same version qt as you do,so you can download them from here or directly get the zip from here (which works for me).

Different version openssl lib used by Qt,so you should test it in you code using static function below if you are not sure about it:

QSslSocket::sslLibraryBuildVersionString();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM