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到相應目錄
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的編譯
這樣會在
目錄下生成
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
疑惑的地方:
為了編譯進 ssl,用到如下命令
OPENSSL_LIBS="-lssleay32 -llibeay32 -lGdi32 -lUser32"
但是 像Gdi32 User32 在windows上 有好多版本,到底用哪個呢? 而且 是否需要 將這些lib文件所在目錄加入到環境變量呢?
參考:
https://blog.csdn.net/qazxdrcssc2006/article/details/73497226
總結
以上是生活随笔為你收集整理的vs2017编译QT with ssl的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英雄联盟(LOL)中英雄的防御属性是怎么
- 下一篇: 成都大熊猫繁育研究基地寄存行李要钱吗