openssl-1.1.1i 在Windows 上用Visual Studio 2019 编译和自定义生成的文件名称

1、安装 perl

地址: https://www.perl.org/get.html

安装好后配置到环境变量中即可,打开CMD,检查一下:perl -version

openssl-1.1.1i 在Windows 上用Visual Studio 2019 编译和自定义生成的文件名称_第1张图片

 

2、安装NASM

地址: https://www.nasm.us/

安装好后配置到环境变量中即可,打开CMD,检查一下:nasm -version

 

3、编译

OpenSSL 地址:https://www.openssl.org/source/

我这里下载的是 openssl-1.1.1i.tar.gz ,然后解压,打开VS命令提示符

openssl-1.1.1i 在Windows 上用Visual Studio 2019 编译和自定义生成的文件名称_第2张图片

 

 

接着在命令提示符中执行:

// 1、切换到你的源码目录
pushd F:\openssl-1.1.1i



// 2、执行配置,prefix 的路径你自己设置

// 动态链接库版本
perl Configure VC-WIN32 no-tests --debug --prefix="F:\openssl-1.1.1i\build"

// 静态库版本
perl Configure VC-WIN32 no-shared no-tests --debug --prefix="F:\openssl-1.1.1i\build"



// 3、编译
nmake



// 4、安装
nmake install

 

4、关于更改最终编译的文件名称问题

在执行完第2条命令后,我们到源码目录就会看到叫  makefile 的文件,复制一份备用,文本模式打开 makefile

批量替换以下内容:

1、文件名

libcrypto.lib            =====>>>   libcrypto_d.lib

libcrypto-1_1.pdb  =====>>>   libcrypto-1_1_d.pdb

libcrypto-1_1.dll    =====>>>   libcrypto-1_1_d.dll

 

libssl.lib                =====>>>   libssl_d.lib

libssl-1_1.pdb       =====>>>   libssl-1_1_d.pdb

libssl-1_1.dll         =====>>>   libssl-1_1_d.dll

 

如果生成的是动态库版本,还需要更改下 openssl-1.1.1i\util\mkdef.pl ,复制一份,改名为 mkdef_d.pl,编辑 mkdef_d.pl, 搜索: Definition file for the DLL

sub print_def_file
{
    (*OUT,my $name,*nums,my @symbols)=@_;
    my $n = 1; my @e; my @r; my @v; my $prev="";
    my $liboptions="";

    my $idxcrypt = index($name,"libssl");    
    $name = ($idxcrypt > -1) ? "
libssl-1_1_d" : "libcrypto-1_1_d";    
    my $libname = $name;
    my $http_vendor = 'www.openssl.org/';
    my $version = get_version();
    my $what = "OpenSSL: implementation of Secure Socket Layer";
    my $description = "$what $version, $name - http://$http_vendor";
    my $prevsymversion = "", $prevprevsymversion = "";

红色部分为新增的内容,保存一下,再去修改makefile,将 makefile 中的: mkdef.pl 替换成 mkdef_d.pl 即可

 

2、运行时库

搜索:/MDd/Md/MTd/MT,根据个人需求,把这个替换成你想要的运行时库方式,至于他们的区别,自行百度

搜索:/O2, /Od,  自行替换成你想要的优化方式

 

 

5、生成完毕后,在prefix的目录中就有,lib, bin, include了

openssl-1.1.1i 在Windows 上用Visual Studio 2019 编译和自定义生成的文件名称_第3张图片

你可能感兴趣的:(开源库,openssl,windows,编译,visual,studio)