• Qt 5.4错误"qt.network.ssl: QSslSocket: cannot call"


    写个FTP程序运行后提示:

    代码如下:

    // 上传文件

    void FtpManager::put(const QString &fileName, const QString &path)
    {
        QFile file(fileName);
        file.open(QIODevice::ReadOnly);
        QByteArray data = file.readAll();
        m_pUrl.setPath(path);
        qDebug()<<"path:"<<path;
        QNetworkReply *pReply = m_manager.put((QNetworkRequest)m_pUrl, data);
        qDebug()<<"url :"<<m_pUrl;
        //connect(pReply, SIGNAL(uploadProgress(qint64, qint64)), this, SIGNAL(uploadProgress(qint64, qint64)));
        connect(pReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SIGNAL(error(QNetworkReply::NetworkError)));
        connect(pReply,SIGNAL(finished()),this,SLOT(finished()));
        connect(pReply,SIGNAL(bytesWritten(qint64)),this,SLOT(onDataWrite(qint64)));
    }

    应该是这”句代码“QNetworkReply *pReply = m_manager.put((QNetworkRequest)m_pUrl, data);“引起的

    搜索发现:帖子:

    今天研读QQStars(http://www.qtcn.org/bbs/read.php?tid-57944.html)时,发现这个软件登陆不上,总是提示:

        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-Win64in下的libeay32.dll和ssleay32.dll拷贝到D:QtQt5.4.25.4mingw491_32in,然后编译就能用。

        然而并没什么卵用!

        无奈之下,我只好用QtCreator3.30进入调试模式,一步步看,看是哪里出了问题。然后让我开心的事情出现了,按登陆的时候并没有出现上面那些错误提示!也就是说,在调试模式下,Qt是加载得了libeay32.dll和ssleay32.dll的。那它加载的是不是和我提供的不一样呢?

        把调试日志调出来看了一下,发现了Qt加载的这两个库,是Qt自带的!路径是:D:QtQt5.4.2Toolsmingw491_32optin。

        最后,我把这个目录下的两个dll拷贝到D:QtQt5.4.25.4mingw491_32in,再运行就没有报错了!

        弄了半天,原来是版本不对,Qt用的openssl版本和我上官网下的不一样,如果我把所有版本尝试了,估计也会成功。不过能够通过这样快捷的方法解决问题,实属良方,以后也要多多用调试器来解决问题。

  • 相关阅读:
    设置VMware Player中的虚拟机和宿主机共享文件
    C++20尝鲜:概念(Concepts)
    ReactiveX 学习笔记(31)ReactiveUI 使用笔记
    TypeScript语言学习笔记(4)枚举
    TypeScript语言学习笔记(3)函数,泛型
    趣味编程:FizzBuzz(Haskell版)
    Haskell语言学习笔记(95)Semiring
    Haskell语言学习笔记(94)Enum Bounded
    ReactiveX 学习笔记(30)操作符辨析
    ReactiveX 学习笔记(29)使用 RxCpp(RxQt)+ Qt 进行 GUI 编程
  • 原文地址:https://www.cnblogs.com/totogo/p/6873392.html
Copyright © 2020-2023  润新知