簡體   English   中英

Qt,Windows和OpenSSL-無法調用無法解析的函數xyz

[英]Qt, WIndows and OpenSSL - Cannot Call Unresolved Function xyz

我最近在運行Qt 5.9.1的Windows 10計算機上安裝了ArcGIS Runtime 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

這個問題似乎很普遍,但是大多數Google結果為Linux系統提供了答案。

我已經完成以下工作:

  • 下載並安裝了OpenSSL(來自GnuWin32 OpenSSL)
  • libeay32.dlllibssl32.dll復制到構建文件夾
  • 在Qt pro文件中添加了include路徑
  • 驗證network是否在pro文件的QT += config部分中

但是,以上所有內容都沒有任何區別。 我正在運行MSVC 2015 32位套件。

您必須將靜態庫添加到您的項目。

找出libeay32.liblibssl32.lib並將它們添加到您的項目中。

參考

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

我認為你需要這樣的兩個DLL文件:的libeay32.dll和ssleay32.dll.I使用相同版本的QT你做,這樣你就可以下載它們在這里或直接從獲得的zip 這里 (這為我的作品)。

Qt使用了不同版本的openssl lib,因此,如果不確定,請使用下面的靜態函數在代碼中對其進行測試:

QSslSocket::sslLibraryBuildVersionString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM