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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go语言实现2048小游戏(完整代码)

文章目录2048逻辑分析完整代码2048逻辑分析 2048小游戏的基本操作是上下左右,每个操作的逻辑都不太一样!这个时候,通过数组旋转的方式。将所有操作转换为向上的操作 git地址 https://gitee.com/hodgekou/golang.git package mainimport (&q…

动态二维码免费制作

python3制作二维码 很多网站都可以自定义制作很漂亮的二维码,提供了各种素材,但是输出文件又各种限制,非要买她的会员不可。好吧!那我们就自己做一个。(大牛的开源项目) 最终效果 开源项目网站 git clon…

vs 2017 静态库 动态库 的初步使用

静态库的初步使用 新建 静态库 项目 Lib1 会产生 sln文件与vcproj文件,vcproj是工程文件,sln是解决方案文件 一个解决方案可以有多个工程 在头文件(Lib1.h)写函数声明,在cpp文件定义函数实现 这时候右键点击项目 ->生成, 会产生 Lib1.lib…

C语言贪吃蛇

扩展功能实现 加速减速计分链表实现彩色界面暂停 开源代码 贪吃蛇 动图展示,(加载比较慢)

C++ 读取windows服务列表 与操作注册表

读取服务列表 https://www.cnblogs.com/Leo-Forest/archive/2013/05/03/3056569.html 操作注册表 https://blog.csdn.net/yanchenyu365/article/details/84840908

Python练手项目

python3学习笔记《目录》 PyCharm和git安装教程 git入门教程 python3学习笔记 Mooc学习Python3笔记 python3字符串处理,高效切片 三国演义人物出场统计 统计哈姆雷特文本中高频词的个数 python3制作动态二维码 python的文件操作 简单的爬虫笔记 爬虫实战项…

windows C++ 通过WMI获取底层信息

参考 可以通过修改参数来获取相应的信息 https://www.cnblogs.com/hjbf/p/10775112.html https://docs.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-operatingsystem?redirectedfromMSDN

知网毕业论文爬取

知网论文 查找文献的时候每次只显示10页二次检索功能又还没有(不知道是不是我没找到)。干脆用爬虫把所有和自己论文关键字相关的文献题目都爬取下来,然后自己做一个小的检索表。 开源项目 https://github.com/hodgekou/CNKICrawler.git 配…

go语言 函数相关1:实参到形参的传递永远是值拷贝

相关知识点 a. 函数实参到形参的传递永远是值拷贝 b. 函数参数 支持不定长参数,不定参数名在函数体 内相当于切片,对切片的操作同样适合对不定参数的操作 c. 切片是引用类型,值包含指向数组的指针 func test1(s ...int) { // s为不定长参数s[0] 888 }…

git 初步使用01

git工作流程 git的安装 1)安装git 2)安装乌龟 3)汉化乌龟创建本地仓库 在一个空目录,打开git bash here, 输入命令 git init 删除并保留本地副本 选中目标文件,右键乌龟,删除并保留本地副本 这…

net-tools和ifconfig

文章目录历史关系两者使用对比一、显示所有已连接的网络接口二、激活或停用网络接口三、为网络接口分配IPv4地址四、移除网络接口的IPv4地址五、显示网络接口的IPv4地址六、为网络接口分配IPv6地址七、显示网络接口的IPv6地址八、移除网络设备的IPv6地址九、改变网络接口的MAC地…

go语言在windows编译在linux上运行的可执行程序

package mainimport ("fmt""os""os/exec" )//filepath: 要编译的文件的路径 func build(filepath string){_ os.Setenv("CGO_ENABLED", "0")_ os.Setenv("GOARCH", "amd64")_ os.Setenv("GOOS&…

Django无法显示图片

首先注意的一点是&#xff0c;Django没有根目录的这个说法&#xff0c;所以下载下来的html文件没有办法直接使用&#xff0c;必须进行修改路径&#xff0c;特别是图片引用的路径&#xff0c;需要进行修改。 路径不对 源码 {% load staticfiles %} <img src"{% stati…

go语言函数相关

函数类型 函数类型也叫作函数签名&#xff0c; 就是函数定义首行去掉函数名、参数名和&#xff5b;&#xff0c;可以使用fmt.Printf 的”%T”格式化参数打印函数的类型。 可以使用 type 定义函数类型&#xff0c;函数类型变量可以作为函数的参数或返回值。 实际函数类型变量和…

go语言如何连接数据库

文章目录安装驱动连接数据库查询表结果插入结果删除结果安装驱动 go get github.com/go-sql-driver/mysqlimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql" )连接数据库 //用户名&#xff1a;密码^tcp(地址:3306)/数据库db, err…

在windows下,编译可访问https的libcurl静态库过程

1. 首先编译openssl静态库 整个过程用的是 vs2015命令提示工具 需要安装perl 下载地址&#xff1a;添加链接描述 解压后&#xff0c; 在 openssl-1.0.2e目录下创建develop这个文件夹&#xff0c; cd到 openssl-1.0.2e目录下&#xff0c; a.配置编译文件和模式 执行 perl Co…

Go语言爬虫项目将结果写入MySql数据库

来源于Google资深工程师深度讲解Go语言 package mainimport ("fmt""io/ioutil""net/http" )const url "http://www.zhenai.com/zhenghun"func main() {//发送get请求resp, err : http.Get(url)if err ! nil {panic(err)}//关闭通道d…

go语言学习路径

个人记录 go语言如何连接数据库&#xff1a;增删改查 Go语言爬虫项目将结果写入MySql数据库 go语言急速入门

在windows上使用go编译dll文件,供C++调用

C项目是win32的&#xff0c;所以go的编译环境也要改成win32的 cmd下&#xff0c;修改环境变量&#xff1a; set GOARCH386 set CGO_ENABLED1 使用go env 查看是否生效参考&#xff1a;https://bbs.csdn.net/topics/394513992. 2. 安装编译环境 MinGW下载安装gcc,g编译器 参考&…