我刚刚下载了Qt(LGPL - 适用于Windows的Qt SDK),当我运行一些演示时,他们抱怨Qt没有SSL。
如何启用启用SSL的Qt SDK?我真的需要从源代码编译它以获得SSL支持吗?为什么我下载的版本中缺少它?
答案 0 :(得分:9)
要为Qt启用SSL,首先必须下载OpenSSL包。为此,我建议下载可用的OpenSSL二进制文件here.安装二进制文件并阅读随附的帮助。
此部分用于在Microsoft Visual C ++下安装OpenSSL二进制文件(下面的文本取自二进制文件的帮助)
OpenSSL旨在轻松构建 在Microsoft Visual C ++下。然而, 要求你去取得 25MB Win98 DDK并拥有最新版本 安装了Service Pack(SP5为120MB) 可以证明是对某些人的阻碍 人(特别是那些人) 调制解调器)。
所以,安装Win32 OpenSSL二进制文件非常简单 过程(类似于Borland C ++ 构建器流程)。
要做的第一件事(假设一个 默认安装'C:\ OpenSSL') 是去'C:\ OpenSSL \ lib \ VC'和 将所有文件复制到Visual C ++'lib'目录。这个目录是 有时位于某种程度上 隐秘的位置,如'C:\ Program Files \ Microsoft Visual Studio \ VC98 \ lib'或'C:\ Program Files \ Microsoft Visual C ++ \ lib'。
接下来,复制中的所有内容 'C:\ OpenSSL \ include'目录到你的 Visual C ++'include'目录。
就是这样!你准备去写了 支持OpenSSL的代码!
设置正确的参数后,您现在可以配置Qt以启用SSL支持。 运行 configure.exe -debug-and-release -webkit -openssl -I C:\ openssl \ Include -L C:\ openssl \ Lib ,然后运行nmake。您已启用SSL支持。不要忘记将Qt + = network放在.pro文件中。
这对我和我的同事都有用,也应该为你工作:)。
答案 1 :(得分:9)
@ user261882回答只是部分正确。他说Qt没有SSL支持并且您确实需要下载OpenSSL libraries,这是正确的。
然而,之后的链接过程要简单得多,您不需要在下载SSL库后重建Qt或乱用Microsoft Visual的东西。 Qt让你轻松。
下载SSL库后需要做的就是确保Qt可以找到这些openSSL库的位置。如果在下载过程中选择了将openSSL DLL复制到Windows的选项系统目录,Qt将自动在该目录中找到openSSL二进制文件,因为Windows系统目录总是被Windows搜索。
如果您不希望在Windows系统目录中安装openSSL库,那很好,您只需要告诉Qt openSSL DLL所在的位置。您可以通过多种方式执行此操作...一种可能的解决方案是将openSSL DLL的位置添加到系统PATH。另一个简单的解决方案是将openSSL DLL复制到包含可执行文件的目录中。保证也可以搜索该目录。
一个简单的检查,您可以在之后运行以查看是否有效,调用静态函数QSslSocket::supportsSsl(),如果此函数返回true,Qt找到您下载的openSSL二进制文件。 (当然,请确保在运行此测试之前在Qt += network
文件中添加.pro
)
使用Qt Creator 2.5.2和Win32 OpenSSL库v1.0.1c
使用Qt 4.8.3二进制文件进行测试希望这可以节省每个人一些时间。这样做你不需要去搜索Visual Studio文件,它更简单。
答案 2 :(得分:3)
从源代码构建Qt时,配置系统会检查OpenSSL的源代码或开发人员包提供的openssl / opensslv.h头文件是否存在。由于世界某些地区的进出口限制,我们无法向OpenSSL Toolkit提供Qt包。希望在已部署的应用程序中使用SSL通信的开发人员应确保其用户安装了相应的库,或者他们应咨询合格的合法专业人员以确保使用OpenSSL项目代码的应用程序正确经认证可在世界相关地区进出口。
如果您已经安装了OpenSSL,请尝试提供
Qt += network
文件中的 .pro
..
希望有所帮助......
答案 3 :(得分:0)
QT 5.15:
注意:如果编译x86变体,则必须从Win_x86文件夹中复制DLL。
我在这里找到了这个答案:https://www.programmersought.com/article/71774817627/