日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當前位置: 首頁 >

vs2017编译QT with ssl

發布時間:2023/11/30 32 豆豆
默认站点 收集整理的這篇文章主要介紹了 vs2017编译QT with ssl 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景:項目中使用的Qt環境不支持https請求,原因是 源碼編譯的時候沒有鏈接相應的ssl庫文件。需要重新編譯qt

第一步 先編譯Openssl
1)安裝perl,并配置環境變量
下載地址:
http://downloads.activestate.com/ActivePerl/releases/5.26.1.2601/ActivePerl-5.26.1.2601-MSWin32-x64-404865.exe
2)下載Openssl源碼https://www.openssl.org/source/
找到相應的版本,我用的是openssl-1.0.2l
解壓文件后,用 vs2017命令行工具cd到相應目錄

perl Configure VC-WIN32 no-asm --prefix=D:\QtAddSsl\OpenSSL

D:\QtAddSsl\OpenSSL是編譯后的目錄
其中VC-WIN32是對應平臺,如果是64位的話就是VC-WIN64A(當然,如果你要用得是英特爾的安騰系列64位處理器的話就是VC-WIN64I了,但是我想應該沒有人用……),no-asm的意思是不使用匯編代碼,如果用的話會出現許多奇奇怪怪的問題。–prefix參數指定的是最后的安裝目錄

下一步:

ms\do_ms

因為我們是靜態編譯,所以輸入

nmake -f ms\nt.mak

為了驗證可以輸入

nmake -f ms\nt.mak test

看到passed all tests的話說明沒有問題,可以繼續,輸入

nmake -f ms\nt.mak install

完成openssl的編譯
這樣會在

D:\QtAddSsl\OpenSSL\lib

目錄下生成
libeay32.lib ssleay32.lib

第二步 :編譯QT
1:安裝qt-opensource-windows-x86-msvc2015-5.6.3.exe,需要勾選Source Components
2:修改\Qt5.6.3\5.6.3\Src\qtbase\mkspecs\common\msvc-desktop.conf文件:

QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
改為
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
3.編譯安裝qt,在configure命令中,prefix參數值為編譯安裝目錄。這里編譯出來的是動態庫。編譯時間大約在3,4個小時左右
打開開始菜單中"Visual Studio 2017"中的"VS 2017的開發人員命令提示符",輸入以下命令:
cd \Qt5.6.3\5.6.3\Src

configure -confirm-license -opensource -platform win32-msvc2015 -debug-and-release -shared -target xp -prefix “E:\Qt-msvc2015-shared-mt-addSsl” -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -openssl-linked OPENSSL_LIBS="-lssleay32 -llibeay32 -lGdi32 -lUser32" -no-qml-debug -no-angle -nomake tests -nomake examples nmake && nmake install ps: OPENSSL_LIBS="-lssleay32 -llibeay32 -lGdi32 -lUser32" 這幾個庫文件,要在環境變量LIB里面

疑惑的地方:

  • 源碼編譯qt的時候,
    為了編譯進 ssl,用到如下命令
    OPENSSL_LIBS="-lssleay32 -llibeay32 -lGdi32 -lUser32"
    但是 像Gdi32 User32 在windows上 有好多版本,到底用哪個呢? 而且 是否需要 將這些lib文件所在目錄加入到環境變量呢?
  • 參考:
    https://blog.csdn.net/qazxdrcssc2006/article/details/73497226

    總結

    以上是默认站点為你收集整理的vs2017编译QT with ssl的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得默认站点網站內容還不錯,歡迎將默认站点推薦給好友。