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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值