缺少Qt SSL支持

时间:2010-08-18 19:55:44

标签: ssl qt4

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

4 个答案:

答案 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 Documentation

  

从源代码构建Qt时,配置系统会检查OpenSSL的源代码或开发人员包提供的openssl / opensslv.h头文件是否存在。由于世界某些地区的进出口限制,我们无法向OpenSSL Toolkit提供Qt包。希望在已部署的应用程序中使用SSL通信的开发人员应确保其用户安装了相应的库,或者他们应咨询合格的合法专业人员以确保使用OpenSSL项目代码的应用程序正确经认证可在世界相关地区进出口。

如果您已经安装了OpenSSL,请尝试提供

Qt += network文件中的

.pro ..

希望有所帮助......

答案 3 :(得分:0)

QT 5.15:

  1. 确保已使用Qt维护工具安装了OpenSSL Toolkit
  2. 转到C:\ Qt \ Tools \ OpenSSL \ Win_x64 \ bin并搜索“ libcrypto-1_1-x64.dll”和“ libssl-1_1-x64.dll”
  3. 将它们复制到编译器文件夹(C:\ Qt \ 5.15.2 \ msvc2019_64 \ bin)

注意:如果编译x86变体,则必须从Win_x86文件夹中复制DLL。

我在这里找到了这个答案:https://www.programmersought.com/article/71774817627/