QT4.8.6之qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
想试着用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。