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裏面

疑惑的地方:

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

參考:
https://blog.csdn.net/qazxdrcssc2006/article/details/73497226

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章