2010-08-18 113 views
4

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

回答

8

@ user261882答案只是部分正确。他说Qt没有提供SSL支持并且您确实需要下载OpenSSL libraries

但是,之后的链接过程更加简单,您不需要在下载SSL库或者使用Microsoft Visual东西搞砸之后重新生成Qt。 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二进制文件。(当然,确保您在.pro文件中添加Qt += network运行此测试之前)

使用Qt 4.8.3测试二进制文件,使用Qt Creator的2.5.2和Win32 OpenSSL库v1.0.1c

希望这可以为大家节省一些时间。这样做,你不需要去搜索Visual Studio文件,它更简单。

3

Qt Documentation

当从源代码构建Qt中,配置系统检查通过的OpenSSL源或显影剂包提供在OpenSSL/opensslv.h报头的存在。由于世界某些地区的进口和出口限制,我们无法向OpenSSL Toolkit提供Qt包。希望在其部署的应用程序中使用SSL通信的开发人员应确保他们的用户安装了合适的库,或者他们应咨询具有适当资质的法律专业人员以确保使用OpenSSL项目代码的应用程序正确进行导入和导出认证在世界有关地区。

如果你已经安装了OpenSSL,试着给

.pro文件Qt += network ..

希望它可以帮助..

9

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

这部分是用于Microsoft Visual C++(下从二进制文件的帮助下采取的文本)

OpenSSL是能够很轻松地 建立微软的Visual C下++下安装OpenSSL的二进制文件。然而, 你去获得 了25MB的Win98的DDK,并拥有最新的 服务包(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 + =网络放在你的.pro文件中。

这对我和我的同事都有效,应该也适合你:)。