缺少Qt SSL支持

dan*_*els 4 ssl qt4

我刚刚下载了Qt(LGPL-Qt SDK for Windows),当我运行一些演示时,他们抱怨Qt没有SSL.
如何启用启用SSL的Qt SDK?我真的需要从源代码编译它以获得SSL支持吗?为什么我下载的版本中缺少它?

小智 9

要为Qt启用SSL,首先必须下载OpenSSL包.为此,我建议下载可在此处使用的OpenSSL二进制文件.安装二进制文件并阅读它们随附的帮助.

此部分用于在Microsoft Visual C++下安装OpenSSL二进制文件(下面的文本取自二进制文件的帮助)

OpenSSL旨在使用Microsoft Visual C++轻松构建.但是,要求您获得25MB Win98 DDK并安装最新的Service Pack(SP5为120MB)可能会对某些人(尤其是那些使用调制解调器的人)造成阻碍.

因此,安装Win32 OpenSSL二进制文件是一个相当简单的过程(类似于Borland C++ Builder过程).

要做的第一件事(假设默认安装'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 -IC:\ openssl\Include -LC:\ openssl\Lib,然后运行nmake.您已启用SSL支持.不要忘记将Qt + = network放在.pro文件中.

这对我和我的同事都有用,也应该为你工作:).


sta*_*low 9

@ user261882回答只是部分正确.他说Qt没有SSL支持并且你需要下载OpenSSL库是正确的.

但是,之后的链接过程要简单得多,您不需要在下载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文件,它更简单.