本文主要是介绍Qt 错误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 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,然后把C:\OpenSSL-Win64\bin下的libeay32.dll和ssleay32.dll拷贝到D:\Qt\Qt5.4.2\5.4\mingw491_32\bin,然后编译就能用。
然而并没什么卵用!
无奈之下,我只好用QtCreator3.30进入调试模式,一步步看,看是哪里出了问题。然后让我开心的事情出现了,按登陆的时候并没有出现上面那些错误提示!也就是说,在调试模式下,Qt是加载得了libeay32.dll和ssleay32.dll的。那它加载的是不是和我提供的不一样呢?
把调试日志调出来看了一下,发现了Qt加载的这两个库,是Qt自带的!路径是:D:\Qt\Qt5.5.1_X86\Tools\QtCreator\bin。
最后,我把这个目录下的两个dll拷贝到D:\Qt\Qt5.5.1_X86\5.5\msvc2013\bin,再运行就没有报错了!
弄了半天,原来是版本不对,Qt用的openssl版本和我上官网下的不一样,如果我把所有版本尝试了,估计也会成功。不过能够通过这样快捷的方法解决问题,实属良方,以后也要多多用调试器来解决问题。
这篇关于Qt 错误qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!