OpenSSL在VS2019下的编译及使用
(一)准备工作
1.1 下载OpenSSL
下载链接:[OpenSSL官网](https://www.openssl.org/source/),这里我直接下载的当前的最新版:
下载之后解压到C盘,路径为C:\openssl-1.1.1f,然后再在C盘创建一个目录C:\openssl方便后面指定编译文件存放的路径。
1.2 下载ActivePerl
下载链接:ActivePerl-5.28
下载完成之后双击exe文件默认安装,把“;C:\Perl64\site\bin;C:\Perl64\bin;”粘贴进环境变量PATH中。
1.3 下载NASM
下载链接:NASM-2.12.02/WIN64
下载完成双击EXE文件默认安装,安装完成粘贴“;C:\Users\admin\AppData\Local\NASM;”到环境变量PATH中。
此处默认读者已安装VS2019。
(二)编译
最好参考openssl解压目录下的INSTALL文件,选择需要按什么目标计算机位数编译,如VC-WIN32,VC-WIN64A,VC-WIN64I,WIN-CE等,此处我是按32位编译,所以选择VS的x86命令行窗口:
这里根据自己需要编译成什么位数选择即可。
2.1 配置
在打开的命令行输入以下命令:
perl congigure VC-WIN32 no-asm --prefix=c:\openssl
配置完成的窗口有个成功提示
另:如果出现找不到win32::console这种问题,用VS打开C:\Perl64\lib\ActivePerl下的Config.pm,400行左右做如下替换(用井号#注释掉可执行代码):
# Prevent calling Win32::Console::DESTROY on a STDOUT handle
#my $console;
sub _warn {
# my($msg) = @_;
# unless (-t STDOUT) {
# print "\n$msg\n";
# return;
# }
# require Win32::Console;
# unless ($console) {
# $console = Win32::Console->new(Win32::Console::STD_OUTPUT_HANDLE());
# }
# my($col,undef) = $console->Size;
# print "\n";
# my $attr = $console->Attr;
# $console->Attr($Win32::Console::FG_RED | $Win32::Console::BG_WHITE);
# for (split(/\n/, "$msg")) {
# $_ .= " " while length() < $col-1;
# print "$_\n";
# }
# $console->Attr($attr);
# print "\n";
}
2.2 编译
到D:\VS2019\VC\Tools\MSVC\14.25.28610\bin(这里我是自定义安装目录)下面根据自己的主机位数选择Hostx86或者Hostx64目录打开,之后再选择工具的位数,我之前是选择VC-WIN32配置,所以选择x86目录打开,找到nmake.exe:
将此工具拖入VSx86命令行窗口,按enter运行。
2.3 检查(此步可以略过)
同一个nmake.exe拖进去,后面命令行参数为test,运行。
另:有的因为平台不支持会显示skiped,一般都是ok
2.4 安装
同一个nmake.exe拖进去,命令行参数为install,运行。