关于QT中SSL中错误的解决:“qt.network.ssl: ::::”

关于QT中SSL中错误的解决:“qt.network.ssl: ::::”

  • 关于QT中SSL中错误的解决:“qt.network.ssl: ::::”

关于QT中SSL中错误的解决:“qt.network.ssl: ::::”

错误提示:

qt.network.ssl: QSslSocket: cannot resolve DTLSv1_2_server_method
qt.network.ssl: QSslSocket: cannot resolve DTLSv1_2_client_method
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_new
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_free
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_set_ssl_ctx
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_set_flags
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_CTX_finish
qt.network.ssl: QSslSocket: cannot resolve SSL_CONF_cmd
qt.network.ssl: QSslSocket: cannot resolve SSL_set_alpn_protos
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_alpn_select_cb
qt.network.ssl: QSslSocket: cannot resolve SSL_get0_alpn_selected
qt.network.ssl: QSslSocket: cannot resolve DTLS_server_method
qt.network.ssl: QSslSocket: cannot resolve DTLS_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function DTLS_client_method

参考各种帖子,解决问题的关键是两个文件libeay32.dll 和 ssleay32.dll,这两个文件的寻找参考两个贴子:
https://blog.csdn.net/lsylovezsl/article/details/89601416
https://my.oschina.net/chrisforbt/blog/521650?p={{page}}

博主按这两个贴子找到了这两个文件,从C:\Qt\Tools\mingw730_32\opt\bin中把这两个文件放到了QT的bin目录下面,但是同样提示错误。然后按第二个链接的方法,找一下我的系统中QT调用的是哪里的这两个文件,发现了:
Library C:\Windows\SysWOW64\ssleay32.dll loaded.
Library C:\Windows\SysWOW64\libeay32.dll loaded.
然后尝试一下,做好备份,把C:\Qt\Tools\mingw730_32\opt\bin里面的这两个文件,复制到了SysWOW64下面,重新运行,然后就可以了。

然后贴一下调试的方法
1、选择Debug模式
关于QT中SSL中错误的解决:“qt.network.ssl: ::::”_第1张图片
2、选择第二个绿色的三角号运行,程序启动后,把出问题的地方运行到,比如有一个Btn,点击的时候就会出现上面的错误,那就点一下,让错误出现。然后退出运行。
3、在下面这个位置点右键
关于QT中SSL中错误的解决:“qt.network.ssl: ::::”_第2张图片
4、把这一项打勾
关于QT中SSL中错误的解决:“qt.network.ssl: ::::”_第3张图片
5、然后在界面上方就看到日志了,在日志里可以看到程序运行过程中加载的dll文件。

ps:程序发布时,如果碰到开发时没有问题,但是生成的exe文件放其他电脑上不运行的话,十有八九是dll文件不全,按这个方法可以找出所有的dll文件,跟随exe一起打包走,基本可以解决。
贴个qq群吧:812252472,QT萌新,欢迎新人。

你可能感兴趣的:(OPENSSL)