Qt、WIndows和OpenSSL-无法调用未解析的函数xyz

Qt、WIndows和OpenSSL-无法调用未解析的函数xyz,qt,openssl,arcgis,Qt,Openssl,Arcgis,我最近在运行Qt5.9.1的Windows 10计算机上安装了ArcGIS运行时SDK。尝试使用一个ArcGIS模板构建一个简单的QWidget应用程序时,出现以下错误: qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new qt.network.

我最近在运行Qt5.9.1的Windows 10计算机上安装了ArcGIS运行时SDK。尝试使用一个ArcGIS模板构建一个简单的
QWidget
应用程序时,出现以下错误:

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
这个问题似乎很常见,但大多数谷歌搜索结果都给出了Linux系统的答案

我已经做了以下工作:

  • 下载并安装OpenSSL(来自GnuWin32 OpenSSL)
  • libeay32.dll
    libssl32.dll
    复制到生成文件夹
  • 将include路径添加到Qt-pro文件中
  • 已验证
    网络
    位于pro文件的
    QT+=
    config部分

然而,上述这些都没有带来任何不同。我正在运行MSVC 2015 32位工具包。

您必须将静态库添加到项目中

找出
libeay32.lib
libssl32.lib
并将它们添加到项目中

提及


我认为您需要两个dll文件:libeay32.dll和ssleay32.dll。我使用与您相同的qt版本,因此您可以从下载它们或直接从中获取zip(这对我很有用)

Qt使用不同版本的openssl库,因此如果您不确定,则应使用下面的静态函数在代码中对其进行测试:

QSslSocket::sslLibraryBuildVersionString();