1. 程式人生 > >QT4.8.6之qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error

QT4.8.6之qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error

not solved 目錄 路徑 復制 是不是 pro cannot clas

想試著用qt寫一個爬蟲,編譯的時候報如下錯誤

qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function TLSv1_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

  上網搜了下,是因為沒有條件openssl的兩個動態庫libeay32.dll和ssleay32.dll。網上有兩種說法,一是下載openssl,從裏面復制出這兩個文件到qt的路徑下;二是直接從qt creator(或者qt的的某個目錄?)下找到這兩個文件復制過來。

  先說第二個方法,不知道是不是我qt版本太低的緣故,qt安裝目錄下和qt creator目錄下都沒有找到這兩個文件,也許用qt5.x版本能找到,這個方法放棄。

剩下的只有第一個方法,下載openssl,從裏面復制文件,openssl下載地址如下:

http://slproweb.com/products/Win32OpenSSL.html

  我先後試了Win64OpenSSL-1_1_1a版本,裏面並沒有這兩個文件;Win64OpenSSL-1_0_2q版本,裏面有這兩個文件,但是復制過去編譯依舊有問題;Win32OpenSSL-1_0_2q版本,復制過去編譯正常。

  所以如果按上述方法操作如果不行,不妨多試幾個版本。隨便提一下,文件要復制到qt的bin文件目錄下,例如我的QT安裝在D盤,那麽文件要復制到D:\QT\bin。

QT4.8.6之qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error