静态编译OpenSSL并整合到Qt

静态编译OpenSSL并整合到Qt

来源 https://blog.csdn.net/lixiaoxin1989/article/details/78421573

MSVC版本:

1. 下载OpenSSL源码

1.1 下载OpenSSL的源码:https://www.openssl.org/source/

1.2 解压到C:\openssl-1.0.2l

2. 编译OpenSSL源码

2.1 打开VS的命令工具:

32位:

64位:

2.2 使用cd命令定位到源码文件夹:

cd C:\openssl-1.0.2l

2.3 配置makefile:

32位:

perl Configure VC-WIN32 no-asm --prefix=C:/QtStaticLibs/OpenSSL

64位:

perl Configure VC-WIN64A no-asm --prefix=C:/QtStaticLibs/OpenSSL64

 

2.4 输入命令

32位:

ms\do_ms

64位:

ms\do_win64a

2.5 输入编译命令

nmake -f ms\nt.mak

2.6 输入测试命令,显示passed all tests就是测试通过

nmake -f ms\nt.mak test

2.7 输入安装命令

nmake -f ms\nt.mak install

最后的C:\QtOpenSSL 或 C:\QtOpenSSL64即编译好的SSL库

3. 集成到Qt的静态编译版本中

在Qt的Configure命令中加入如下参数:

-openssl-linked OPENSSL_PREFIX=C:\QtOpenSSL OPENSSL_LIBS="-lssleay32 -llibeay32 -lgdi32"
注意:VS2017下,OPENSSL_LIB="-llibeay32 -lssleay32 -lgdi32 -luser32 -lwsock32 -ladvapi32"

1.安装ActivePerl,并添加到环境变量
2.解压openssl源码到指定目录
3.进入VS2017自带的命令行界面,注意区分版本
本文进入的是x64 Native Tools Command Prompt for VS2017
4.进入openssl解压目录,E:\mylib\openssl-1.0.2l
运行:perl Configure VC-WIN64A no-asm –prefix=E:\mylib\openssl
进行相关的配置
注意:prefix指定安装目录,VC-WIN64A安装平台
5.编译动态库和静态库
运行 nmake -f ms\ntdll.mak进行编译动态库
运行 nmake -f ms\nt.mak进行编译静态库
6.测试编译库
测试动态库:cd out32dll>..\ms\test
测试静态库:cd out32l>..\ms\test
运行结果为:passed all tests 即编译成功
注: 清除上次动态库编译,以便重新编译:nmake -f ms\ntdll.makclean;
清除上次静态库编译,以便重新编译:nmake -f ms\nt.makclean
7.安装库
运行 nmake -f ms\ntdll.mak install 进行安装动态库
在E:\mylib\openssl文件目录下生成bin/include/lib/ssl四个文件目录。
运行 nmake -f ms\nt.mak install 进行安装静态库

MinGW版本:

1.在MinGW官网上下载MSYS( MSYS ),安装后将安装目录中的 /etc/fstab 文件内容改为:

C:/Qt/Qt5.12.3/Tools/mingw730_32 /mingw
   其中 C:/Qt/Qt5.12.3/Tools/mingw730_32 是MinGW所在目录。

打开MSYS,输入gcc -v,显示gcc版本则说明MinGW环境已经配置好了。

2.在MSYS中进入openssl目录输入如下指令:

32位:

perl Configure mingw no-shared no-asm --prefix=C:/QtStaticLibs/OpenSSL
   64位:

perl Configure mingw64 no-shared no-asm --prefix=C:/QtStaticLibs/OpenSSL64

configure完成后依次输入:

make depend
               make
               make install

=================== End

原文地址:https://www.cnblogs.com/lsgxeva/p/12630721.html

时间: 2024-11-05 18:51:02

静态编译OpenSSL并整合到Qt的相关文章

重新编译Nginx指导手册【修复静态编译Openssl的Nginx漏洞 】(转)

1. 概述    当前爆出了Openssl漏洞,会泄露隐私信息,涉及的机器较多,环境迥异,导致修复方案都有所不同.不少服务器使用的Nginx,是静态编译opensssl,直接将openssl编译到nginx里面去了,这就意味着,单纯升级openssl是没有任何效果,Nginx不会加载外部的openssl动态链接库的,必须将nginx重新编译才可以根治. 2. 识别Nginx是否是静态编译的 以下三种方法都可以确认Nginx是否静态编译Openssl. 2.1 查看Nginx编译参数 输入以下指令

静态编译Qt5.4.1和Qt WebKit

blog文章地址:http://godebug.org/index.php/archives/133/ WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以来都觉得自己编译webkit费力不讨好,所以都是用的qt官方编译好的,至于静态编译webkit,我之前一直以为是根本不可能的.后来看qt forum上说其实是可以的,不过是因为开源协议的问题qt默认的静态编译只是把webkit给排除了,自己编译一下webkit就好了,既然如此,那我就当小白试一下.不

静态编译 Qt 5.6

源码下载 Qt git地址:git://code.qt.io/qt/qt5.git 推荐用 SourceTree 客户端来克隆源码 准备工作 系统 Windows 7 或者 Windows 10 编译器 Visual Studio 2013 Update 5 或者 Visual Studio 2015 Update 1 安装ActivePerl 安装Python 静态编译ICU库 ICU库需要把Debug和Release版本都编出来 静态编译openssl 编译webkit需要的环境 Ruby

Qt 5.9.3 如何静态编译和部署?

Qt 5.9.3 如何静态编译和部署? MSVC2015 x86 静态编译 Qt 部署静态库 VS2015 部署静态库 1. MSVC2015 x86 静态编译 1.1 Qt 官网下载最新源代码 立即下载 1.2 参考 Qt 官网提供的教程 Qt for Windows - Building from Source Qt Configure Options Qt for Windows - Requirements 参考上面文档后,发现需要安装以下依赖: ActivePerl Python 成功

Linux下静态编译Qt

Qt采用编译的方式安装的时候,配置中默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,所以在此介绍一下qt如何来进行静态编译 第一步:下载源码包 Qt/X11版本:qt-x11-opensource-src-x.x.x.tar.gz 第二步:解压缩 tar zxvf qt-x11-opensource-src-x.x.x.tar.gz 第三步:进入到刚才解压缩后的文件夹下并进行配置,如

C++ Qt 框架静态编译 操作记录

谁愿意写个程式出来之后还附带一堆DLL,尤其是名字如此明显的名字. 于是在网上看了看,是需要下载源代码然后进行编译的,但是看了看别人说的编译时间,长达几个小时,瞬间就感觉不想做了.因为我还需要抓紧时间code. 于是利用某某搜索引擎找了个 Qt 5.1 已经静态编译完毕之后的包.在文章的最后会提供下载地址,我们为了节约可贵的时间,我们之间使用别人已经编译好的包来进行静态编译. 首先我们下载Qt 5.1(下载地址在文章的最后) 然后我是直接放在 C盘下的 打开Qt Creator -> Tools

win7 32位下 QT4.8.6 从安装配置到静态编译

  最近用QT编了一个很水的小程序,虽然之前用过QT但是编出来的程序都是在本机运行,本地的环境什么的当然配置好了能运行,但是拿到别的机子上就不行了,QT默认的编译方式是动态编译,即运行程序需要依赖QT动态链接库中的dll文件,如果想在别的电脑上运行你的程序,就需要把这些dll文件一起放到exe下一起带走,但是QT有几个动态链接库太大了一个就要上百兆,如果你的程序中需要用到这些dll文件中的东西,就需要一起带走,这样的话你做一个很小的程序最后需要运行的话足足要几百兆的空间,很是浪费.还好QT提供了

亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查

Linux下快速静态编译Qt以及Qt动态/静态版本共存

Qt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-opensource-src的tar包,到网上一查,乖乖,大部分人编译这个包居然花费了12-13个小时!但是,根据我在Windows下静态编译Qt的经验,其实这之中很多东西都是可以不用编译的,最终我大约用了40分钟编译完成了全部内容.如果你直接使用官方的sdk安装,那么你就已经有了一个动态库,现在你又通过源