zoukankan      html  css  js  c++  java
  • GmSSL Build with VS2017

    使用背景:     

        最近研究GB35114, 有关于sip协议部分,exosip的已经编译过,由于gb3511中采用的是国密算法,因此这里记录一下GMSSL在windows下的编译过程以及遇到的错误

    详细GMSSL的介绍见:http://gmssl.org/

    根据文档说明,步骤如下:

    在Window下的编译和安装

    安装ActivePerl和Visual Studio,以管理员身份打开Visual Studio Tools下的Developer Command Prompt控制台并运行:

    perl Configure VC-WIN32
    nmake
    nmake install

    环境准备:
       1. ActivePerl: ActivePerl-5.28.1.0000-MSWin32-x64-432e1938.exe
       2. NASM: nasm-2.14.03rc2-installer-x64.exe

     

    32位编译:

    第一步便遇到了问题:  Can't locate Win32/Console.pm in @INC (you may need to install the Win32::Console module)

     

    解决: 自然想到是perl缺少Win32:Console module

    网上搜索Win32:Console module perl module,其中看到perl的安装, cpan方式

    perl -MCPAN -e shell

    install Win32:Console

     

    对照操作后,重新再来,发现dmake错误,又无法识别,继续搜索dmake...

    继续各种查找,各种尝试,最终能真正work的方法是使用如下链接的site替换perl安装下的site目录。。。。。。

    https://download.csdn.net/download/u011234288/10346624

     

    解决此问题后

    nmake

    nmake install

    就一路畅通

     


    注意,管理员权限安装




    64位编译:

         由于文档上面介绍默认是32位的编译安装,64位可能会有问题,尝试一下,如果有问题再提交作者,

    config看看64位的 

    perl Configure VC-WIN64A / VC-WIN64I 

    貌似都有相同的错误,无法编译通过。。。。。。
    
    

            IF EXIST libcrypto-1_1-x64.dll.manifest DEL /F /Q libcrypto-1_1-x64.dll.manifest

            link /nologo /debug /dll  /implib:libcrypto.lib /out:libcrypto-1_1-x64.dll /def:libcrypto-1_1-x64.def @C:UsersleehmAppDataLocalTemp m7B43.tmp || (DEL /Q libcrypto.* libcrypto-1_1-x64.* && EXIT 1)

    cryptoaesaes_cfb.obj : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'

    NMAKE : fatal error U1077: 'link' : return code '0x1'

    Stop.

    解决:

    切换使用vs2017所带的command tool, 之前编译32位使用的是:Developer Command Prompt for vs2017

    看看错误貌似是x86与x64冲突, 切换到2017的x64 tool,  x64 Native Tools Command Prompt for vs2017,

    重新 拉一份干净的代码,

    perl Configure VC-WIN64A

    namke, 

    nmake install 

    OK,至此32/64都已编译成功。

    更多关于GmSSL的issue:

    https://github.com/guanzhi/GmSSL/issues

  • 相关阅读:
    python 冒泡排序
    python链式调用REST API把参数放到URL中
    python assert断言用法
    python实现斐波那契数列
    Pycharm快捷键集合
    linux shell中$0,$?,$!等的特殊用法
    搭建邮箱服务器
    linux安装IB驱动方法
    Oracle:Redhat 7.4+Oracle Rac 11.2.0.4 执行root.sh报错处理
    Struts学习(一)
  • 原文地址:https://www.cnblogs.com/leehm/p/12066683.html
Copyright © 2011-2022 走看看