首页 > 系统相关 >Windows编译OpenSSL和Gmssl

Windows编译OpenSSL和Gmssl

时间:2022-10-12 23:47:24浏览次数:83  
标签:openssl Console nmake Windows OpenSSL Gmssl Win32 编译 console

准备工作

1.Perl的安装

从Perl官网(https://www.activestate.com/products/perl/downloads/)下载安装包直接安装就行了。安装完好后命令行执行【perl -v】就可以查看版本信息

2.OpenSSL源码

OpenSSL下载地址:

[Github]:https://github.com/openssl/openssl/tree/master

[码云]:https://gitee.com/mirrors/openssl/tree/master/ (个人推荐码云,服务器在国内下载快)

3.编译openssl

3.1 打开VS2022开发人员命令提示控制台(根据你安装的VS版本决定)。进入OpenSSL源码目录,然后执行

编译x86就选择x86开发人员命令提示控制台;编译x64就选择x64开发人员命令提示控制台;不要搞错了
perl Configure VC-WIN32 no-asm --prefix=D:\openssl_win32  // 生成32位库

perl Configure VC-WIN64A no-asm --prefix=D:\openssl_win64 // 生成64位库

解释以上命令:

  • VC-WIN32 表示编译选项生成32位的库
  • VC-WIN64A 表示编译选项生成64位的库
  • no-asm 表示不使用汇编,如果本地安装了nasm工具,可以不使用此选项
  • --prefix=D:xxx\xx 表示输出目录
注意:Perl在使用的时候可能会提示如下信息,然后退出
Can't locate Win32/Console.pm in @INC (you may need to install the Win32::Console module)

 (@INC contains: C:\Perl64\site\lib C:\Perl64\lib) at C:\Perl64\lib/ActivePerl/Config.pm line 400.

解决办法:根据提示信息在Perl安装目录找到Config.pm,然后找到400行左右将sub _warn 里面的代码注释,注释完之后如下所示:

# 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";

}

3.2 执行以下代码开始编译

//OpenSSL1.1.0以后执行以下代码

nmake 
nmake test
nmake install


// OpenSSL1.1.0以前执行如下代码
ms\do_ms 
nmake -f ms\ntdll.mak 
nmake -f ms\ntdll.mak test 
nmake -f ms\ntdll.mak install
注1:从openssl 1.1.0版本以后就不再有ms\do_*.bat这样的文件,而是直接使用nmake命令就行了,详见官方文档
注2:执行test可能过不去。因为部分测试网络地址被墙了
注3:执行install可能过不去,因为需要使用管理员权限打开开发命令行

4.添加环境变量

这个看个人需求,需要就加到环境变量里面不需要就算了

5.gmssl的编译

  • gmssl的2.x.x版本是可以参照以上过程进行编译
  • gmssl的3.x.x版本暂未实验,据说只使用cmake即可

标签:openssl,Console,nmake,Windows,OpenSSL,Gmssl,Win32,编译,console
From: https://www.cnblogs.com/livio/p/16786526.html

相关文章

  • Windows编译OpenSSL
    windows编译OpenSSL/Gmssl准备工作1.Perl的安装从Perl官网(https://www.activestate.com/products/perl/downloads/)下载安装包直接安装就行了。安装完好后命令行执行【......
  • Windows server 2012 配置开机自启动项
    第一种方法:打开运行功能,运行shell:startup,打开管理员用户启动项目录。将想要设置成开机自启的程序快捷方式添加到其中即可,或者删除其中快捷方式即可取消开机自启。如下如:......
  • windows 下java-jar启动的jar包怎么停
     1用管理员打开cmd命令窗口2输入:netstat-ano|findstr端口号92333根pid删除命令taskkill/t/f/pid2136  ......
  • 在Windows环境下安装运行Kafka
    一、安装JAVAJDK1、下载安装包http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html注意:根据32/64位操作系统下载对应的安装包2、添......
  • windows+python更改pip国内镜像源
      C:\Users\baoshan\AppData\Roaming\pip pip.ini[global]index-url=https://pypi.tuna.tsinghua.edu.cn/simple/[install]trusted-host=pypi.tuna.tsinghua.e......
  • C++ 实现视频文件播放(Windows Media Player、MFC、C#)
    <fontcolor=purplesize=5face="隶书">无为也,则用天下而有余;有为也,则为天下用而不足。1、简介https://docs.microsoft.com/en-us/windows/win32/wmp/about-the-windows-......
  • 【AI白身境】深度学习从弃用windows开始
    【AI白身境】深度学习从弃用windows开始今天是新专栏《AI白身境》的第一篇,所谓白身,就是什么都不会,还没有进入角色。给大家准备了10期左右的文章来完成这个身份的转变,今天是......
  • 如何查看windows 2003系统版本是32位还是64位
    https://zhidao.baidu.com/question/1383192132920330300.html1、右击我的电脑-属性页面一般都有。2、遇到了属性页面没有信息的,使用Windows内置命令systeminfo查看系统......
  • Kafka Server的运行(windows环境)
    KafkaServer的运行运行环境:windows1064位一、Kafka运行环境Kafka运行需要JAVA开发环境,需要安装JDK1.8及以上(选择windows64版本:jdk-8u341-windows-x64.exe)可以选......
  • Windows 上下载安装 RabbitMQ 的方法步骤
    RabbitMQ是一套开源(MPL)的消息队列服务软件,是由LShift提供的一个AdvancedMessageQueuingProtocol(AMQP)的开源实现,由以高性能、健壮以及可伸缩性出名的Erlang写成......