2010-08-18 111 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文件中。

這對我和我的同事都有效,應該也適合你:)。