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

1、安装 perl

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

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

 

2、安装NASM

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

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

 

3、编译

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

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

 

 

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

// 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了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值