我剛剛下載了Qt(LGPL-Qt SDK for Windows),當我運行一些演示時,他們抱怨Qt沒有SSL。
如何獲得啓用了SSL的Qt SDK?我真的需要從源代碼編譯來獲得SSL支持嗎?爲什麼我下載的版本中缺少這些內容?缺少Qt SSL支持
回答
@ 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文件,它更簡單。
當從源代碼構建Qt中,配置系統檢查通過的OpenSSL源或顯影劑包提供在OpenSSL/opensslv.h報頭的存在。由於世界某些地區的進口和出口限制,我們無法向OpenSSL Toolkit提供Qt包。希望在其部署的應用程序中使用SSL通信的開發人員應確保他們的用戶安裝了合適的庫,或者他們應諮詢具有適當資質的法律專業人員以確保使用OpenSSL項目代碼的應用程序正確進行導入和導出認證在世界有關地區。
如果你已經安裝了OpenSSL,試着給
在.pro
文件Qt += network
..
希望它可以幫助..
要啓用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文件中。
這對我和我的同事都有效,應該也適合你:)。
- 1. 缺少64位支持
- 2. 缺少平臺支持?
- 3. ServiceStack.Redis缺少異步支持
- 4. Netcat Android缺少UDP支持
- 5. 缺少支持庫V7 23
- 6. Chromium:缺少sass支持
- 7. Qt缺少qtextcontrol_p.h
- 8. Qt缺少庫嗎?
- 9. 支持Android-V4缺少方法
- 10. Apple IOS和缺少HTML5 WebSockets支持
- 11. MonoDroid缺少對System.IO.Ports的支持
- 12. RenderScript支持庫中缺少Mesh類
- 13. ADAL4J,提示缺少行爲支持
- 14. TIdHTTPProxyServer SSL支持
- 15. Node.js + SSL支持
- 16. Android SSL支持
- 17. Qt支持VNC
- 18. 雖然SSL缺少ServerHelloDone Hanshake
- 19. 如何解決***缺少分隔符。編譯QT(或支持庫)時?
- 20. node-odbc SSL支持
- 21. Favicon不支持SSL
- 22. IdMappedPortTCP OnOutboundConnect SSL支持
- 23. MongoDB + PHP:支持SSL?
- 24. gsoap 2.8.15 SSL支持
- 25. 在Qt Android上缺少QSGContext
- 26. QFontCombobox(Qt 4.7)缺少字體
- 27. Qt中缺少鏈接器
- 28. QT中缺少Kernel32.dll
- 29. QT https SSL支持靜態QT靜態程序構建 - 仍然需要openssl dll
- 30. SSL PDO(MySQL)支持SSL如何工作?