zoukankan      html  css  js  c++  java
  • windows 为qt5.7.1 安装openssl

    本人使用qt5.7.1+msvc2015写一个https的客户端程序,但是用到解析https协议时,报出如下错误

    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

    后来发现是,系统中没有openssl导致。
    openssl 大部分为下载源码自己编译,然后调用dll库,也有exe安装版本,但是网站要钱
    源码地址:https://www.openssl.org/
    安装版软件地址:http://slproweb.com/products/Win32OpenSSL.html

    我使用的是这个版本:https://www.openssl.org/source/openssl-1.0.2m.tar.gz
    按照以下博客说明安装完成:https://blog.csdn.net/liang19890820/article/details/51658574
    csdn博客上所说,大部分都对。
    只是我nmake命令的时候,一直缺少h文件,知道是环境变量的问题,本来想通过将h文件拷贝到此目录下解决,但估计lib环境也没有,这么做麻烦,遂放弃
    后来通过使用vs2015 自带的命令提示符cmd软件,在这里运行能够继承vs的所有环境

    接下来将openssl安装目录中的bin下:libeay32.dll ssleay32.dll 拷贝到qt目录中有Qt5Network.dll & Qt5Networkd.dll 目录中即可
    (我实际拷贝的是:bin/libeay32.dll, bin/ssleay32.dll lib/libeay.lib lib/ssyeay.lib)没试验过不带lib是否可行

    最后值得一说的是,qt5.7.1中是自带 libeay32.dll &ssleay32.dll 的 在目录:C:QtQt5.7.1ToolsQtCreatorin
    但我将这两个dll拷贝到Qt5Network.dll目录下时,无法工作,所以我时默认的“自带的不工作ssl库不工作”这一结论的。




  • 相关阅读:
    socket编程原理
    配置Symbian WINS Emulator
    mysql 的乱码解决方法
    深入剖析关于JSP和Servlet对中文的处理
    一个分众传媒业务员的销售日记
    中移动第四季度SP评级结果出炉 A级企业仅5家
    基于socket的聊天室实现原理
    看Linux内核源码 练内力必备技能
    Dell要收购AMD?
    同步执行其他程序(dos命令)
  • 原文地址:https://www.cnblogs.com/braveCloud/p/9819056.html
Copyright © 2011-2022 走看看