目标编译: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后,可查看安装路径下文件目录如下: