使用背景:

最近研究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:\Users\leehm\AppData\Local\Temp\nm7B43.tmp || (DEL /Q libcrypto.* libcrypto-1_1-x64.* && EXIT 1)

crypto\aes\aes_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

GmSSL Build with VS2017的更多相关文章

  1. Win7 VS2017编译bgfx图形API

    官方的编译指南在这个页面 https://bkaradzic.github.io/bgfx/build.html#quick-start 目前的版本编译比较简单,下载3个项目,放于同级目录下 http ...

  2. vs2017 编译vue 错误 TS2307 Build:找不到模块“webpack”。

    升级了vs2017之后,编译之前正常的工程,发现出现了对vue的编译错误, 提示一些列找不到模块的错误 错误 TS2307 Build:找不到模块“webpack”. ...... 错误 TS2345 ...

  3. Vs2017 xaramin mac build agent部署后记

                    换了四种黑苹果,最终成功了                 步骤: 1.升级vs2017, 2.安装XCODE 8.3 3.安装vs2017 for mac 企业版 4 ...

  4. [转]How can I install the VS2017 version of msbuild on a build server without installing the IDE?

    本文转自:http://stackoverflow.com/questions/42696948/how-can-i-install-the-vs2017-version-of-msbuild-on- ...

  5. docker~通过vs2017的Dockerfile来生成镜像

    回到目录 Dockerfile这个东西我们之前是介绍过,它方便,快捷,易用,而在vs2017中也对docker进行了支持,而生成docker image的方式就是有用Dockerfile为基础的,在添 ...

  6. VS2017 编译 chromium和webrtc

    Chromium的编译和WebRTC的编译方式相同,WebRTC官网也是使用的Chromium的编译文档. 步骤一.跳 - 墙,先跳 - 墙这是第一步哟,chromium大概有10几个G,webrtc ...

  7. 关于 AspNet Core 的配置文件 与VS2017 安装

    下面链接 是VS2017 安装EXE 我现在装过了就不去截图演示了,有哪位不理解的可以@我. 链接:https://pan.baidu.com/s/1hsjGuJq 密码:ug59 1.今天我给大家带 ...

  8. VSTS/TFS Auto Build

    前几天使用VSTS配置自动部署前端网站(AngularJS)和RESTfulAPI(.NET)到客户环境. 由于都是参考官方文档 https://docs.microsoft.com/zh-cn/vs ...

  9. 使用VSCode和VS2017编译调试STM32程序

    近两年,微软越来越拥抱开源支持跨平台,win10搭载Linux子系统,开源VSCode作为跨平台编辑器,VS2017官方支持了Linux和嵌入式开发功能. ST也是,近两年开发的软件工具基本都是跨平台 ...

随机推荐

  1. 【NOIP2016提高A组五校联考2】string

    题目 给出一个长度为n, 由小写英文字母组成的字符串S, 求在所有由小写英文字母组成且长度为n 且恰好有k 位与S 不同的字符串中,给定字符串T 按照字典序排在第几位. 由于答案可能很大,模10^9 ...

  2. 【NOIP2012模拟10.25】剪草

    题目 有N棵小草,编号0至N-1.奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H.在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会依次 ...

  3. 【leetcode】Heaters

    Winter is coming! Your first job during the contest is to design a standard heater with fixed warm r ...

  4. Django orm self 自关联表

    自关联模型 自关联模型就是表中的某一列,关联了这个表的另外一列.最典型的自关联模型就是地区表.省市县都在一张表里面.省的pid为null,市的pid为省的pid,县的pid为市的ID. class A ...

  5. 结合webpack使用vue-router

    demo结构 webpack.config.js var path = require('path'); // const { VueLoaderPlugin } = require('vue-loa ...

  6. 文件操作:rewind()

    函数名: rewind() 功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头   注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动 ...

  7. luogu P1063 能量项链 x

    P1063 能量项链 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子, ...

  8. Linux whatis命令失效 nothing appropriate

    在虚拟机中安装Linux的时候,可能没有生成whatis的数据库,所以whatis的命令无法使用. 如果出现无法使用whatis命令失效,那就生成whatis数据库. 命令: /usr/sbin/ma ...

  9. 基本的axios用法

    首先安装axios: 1):npm install 2):npm install vue-axios --save 3):npm install qs.js --save //它的作用是能把json格 ...

  10. spring session 加载的时候一些配置问题

    启动springboot时候的错误信息: An attempt was made to call the method org.springframework.boot.autoconfigure.s ...