windows上编译安装openssl库

目标编译:curl + openssl + ngtcp2 + nghttp3

1.环境准备

按照顺序进行:

1.1 下载openssl包

https://www.openssl.org/
或者:
在github上查找ssl库源码下载 https://github.com/openssl/openssl

1.2 下载并安装Strawberry Perl

Strawberry Perl:Strawberry Perl for Windows

1.3 下载并安装NASM(汇编器):NASM

注:NASM需要添加程序所在路径到环境变量path中!

2.编译openssl

若编译debug版本的库,需要修改 ms/do_nasm.bat 文件,将原来

perl util\mkfiles.pl >MINFO
perl util\mk1mf.pl nasm VC-WIN32 >ms\nt.mak
perl util\mk1mf.pl dll nasm VC-WIN32 >ms\ntdll.mak
perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak

perl util\mkdef.pl 32 libeay > ms\libeay32.def
perl util\mkdef.pl 32 ssleay > ms\ssleay32.def

修改为:

perl util\mkfiles.pl >MINFO
perl util\mk1mf.pl nasm debug VC-WIN32 >ms\nt.mak
perl util\mk1mf.pl dll nasm debug VC-WIN32 >ms\ntdll.mak
perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak

perl util\mkdef.pl 32 libeay > ms\libeay32.def
perl util\mkdef.pl 32 ssleay > ms\ssleay32.def

即:将第二行和第三行编译选项增加了 debug。修改完成后执行 ms/do_nasm.bat

ms\do_nasm.bat

2.1 右键,以管理员身份打开vs2019的命令行工具:

2.2 切换到openssl解压文件所在目录

2.3 执行如下命令,指定安装路径,并执行如下编译和安装命令

#64位计算机采用:
perl Configure VC-WIN64A --prefix=F:\your\install\path
#32位计算机采用:
perl configure VC-WIN32 --prefix=F:\your\install\path

nmake
nmake install

# 注:如果想编译成 dll,则执行 nmake -f ms\ntdll.mak,编译前要修改 ms\ntdll.mak 将 CFLAG 的 /MD 属性修改为 /MT,与你调用项目匹配):
nmake -f ms\nt.mak    #替换上面的nmake

注:

--prefix选项指定的安装路径必须是绝对路径,若不是用管理员权限执行,则会报错:Permission Denied !若不指定,则默认安装在C:\Program Files (x86)\下。

make过程中可能有很长时间,约10min。

64位电脑在执行nmake编译过程中,会出现很多警告,如:(忽略)

warning C4334: “<<”: 32 位移位的结果被隐式转换为 64 位(是否希望进行 64 位移位?)
ssl\quic\quic_wire_pkt.c(611): warning C4267: “return”: 从“size_t”转换到“int”,可能丢失数据
ssl\quic\quic_wire_pkt.c(646): warning C4267: “return”: 从“size_t”转换到“int”,可能丢失数据
ssl\quic\quic_wire_pkt.c(907): warning C4267: “函数”: 从“size_t”转换到“int”,可能丢失数据
ssl\quic\quic_wire_pkt.c(914): warning C4267: “函数”: 从“size_t”转换到“int”,可能丢失数据

在执行完nmake install后,可查看安装路径下文件目录如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值