Qt编译时未添加对openssl的支持,现想加入支持除了重新编译还有什么办法?

fffvsfff 2018-04-28 04:51:38

现在做一个Qt工程需要实现网络相关的对https的post,get等功能,发现无法get成功,提示protocol未知等错误,搜索很多内容,发现问题源头可能是Qt编译时未添加对openssl的支持。

推理过程为:
看了网上的文章,Qt添加对openssl的支持需要在代码中添加:
#include <QtNetwork>
#include <QSslSocket>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <#include <QSslConfiguration>>

QSslConfiguration config;

config.setPeerVerifyMode(QSslSocket::VerifyNone);
config.setProtocol(QSsl::TlsV1);
request.setSslConfiguration(config);


等内容。同时下载安装了Win32OpenSSL-1_0_1g.exe,然后拷贝libeay32.dll,libssl32.dll,ssleay32.dll到Qt/bin目录和程序运行目录。


但是添加后编译时提示:
uses undefined class 'QSslConfiguration'
...
'QSslSocket' : is not a class or namespace name
...
'setSslConfiguration' : is not a member of 'QNetworkRequest'
...
c:\QT\qt-4.5.3-win\include\QtNetwork/../../src/network/access/qnetworkrequest.h(60) : see declaration of 'QNetworkRequest'
...

等错误

明明已经添加了include为什么还报这些错误呢,查找qnetworkrequest.h源文件发现以下代码:
#ifndef QT_NO_OPENSSL
QSslConfiguration sslConfiguration() const;
void setSslConfiguration(const QSslConfiguration &configuration);
#endif

不能识别setSslConfiguration函数的原因是Qt中添加了QT_NO_OPENSSL标记,所以得出编译时未选择支持openssl功能。


查了一些资料,很多都说让从新编译Qt,但实在不想重编译Qt了,一是费时二是用当前版本很久了不想因重编译各种参数配置错误产生新的问题,请教各位朋友,还有什么办法可以实现Qt支持openssl? 通过拷贝已编译好的同版本Qt文件夹,能否实现访问https功能?
环境:win7、Qt4.5.3、vc6(工业开发所以工具都不是新的)


请了解问题的朋友都帮忙解答一下,不胜感激!
...全文
2136 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧