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:\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的更多相关文章
- Win7 VS2017编译bgfx图形API
官方的编译指南在这个页面 https://bkaradzic.github.io/bgfx/build.html#quick-start 目前的版本编译比较简单,下载3个项目,放于同级目录下 http ...
- vs2017 编译vue 错误 TS2307 Build:找不到模块“webpack”。
升级了vs2017之后,编译之前正常的工程,发现出现了对vue的编译错误, 提示一些列找不到模块的错误 错误 TS2307 Build:找不到模块“webpack”. ...... 错误 TS2345 ...
- Vs2017 xaramin mac build agent部署后记
换了四种黑苹果,最终成功了 步骤: 1.升级vs2017, 2.安装XCODE 8.3 3.安装vs2017 for mac 企业版 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- ...
- docker~通过vs2017的Dockerfile来生成镜像
回到目录 Dockerfile这个东西我们之前是介绍过,它方便,快捷,易用,而在vs2017中也对docker进行了支持,而生成docker image的方式就是有用Dockerfile为基础的,在添 ...
- VS2017 编译 chromium和webrtc
Chromium的编译和WebRTC的编译方式相同,WebRTC官网也是使用的Chromium的编译文档. 步骤一.跳 - 墙,先跳 - 墙这是第一步哟,chromium大概有10几个G,webrtc ...
- 关于 AspNet Core 的配置文件 与VS2017 安装
下面链接 是VS2017 安装EXE 我现在装过了就不去截图演示了,有哪位不理解的可以@我. 链接:https://pan.baidu.com/s/1hsjGuJq 密码:ug59 1.今天我给大家带 ...
- VSTS/TFS Auto Build
前几天使用VSTS配置自动部署前端网站(AngularJS)和RESTfulAPI(.NET)到客户环境. 由于都是参考官方文档 https://docs.microsoft.com/zh-cn/vs ...
- 使用VSCode和VS2017编译调试STM32程序
近两年,微软越来越拥抱开源支持跨平台,win10搭载Linux子系统,开源VSCode作为跨平台编辑器,VS2017官方支持了Linux和嵌入式开发功能. ST也是,近两年开发的软件工具基本都是跨平台 ...
随机推荐
- 【NOIP2016提高A组五校联考2】string
题目 给出一个长度为n, 由小写英文字母组成的字符串S, 求在所有由小写英文字母组成且长度为n 且恰好有k 位与S 不同的字符串中,给定字符串T 按照字典序排在第几位. 由于答案可能很大,模10^9 ...
- 【NOIP2012模拟10.25】剪草
题目 有N棵小草,编号0至N-1.奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H.在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会依次 ...
- 【leetcode】Heaters
Winter is coming! Your first job during the contest is to design a standard heater with fixed warm r ...
- Django orm self 自关联表
自关联模型 自关联模型就是表中的某一列,关联了这个表的另外一列.最典型的自关联模型就是地区表.省市县都在一张表里面.省的pid为null,市的pid为省的pid,县的pid为市的ID. class A ...
- 结合webpack使用vue-router
demo结构 webpack.config.js var path = require('path'); // const { VueLoaderPlugin } = require('vue-loa ...
- 文件操作:rewind()
函数名: rewind() 功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头 注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动 ...
- luogu P1063 能量项链 x
P1063 能量项链 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子, ...
- Linux whatis命令失效 nothing appropriate
在虚拟机中安装Linux的时候,可能没有生成whatis的数据库,所以whatis的命令无法使用. 如果出现无法使用whatis命令失效,那就生成whatis数据库. 命令: /usr/sbin/ma ...
- 基本的axios用法
首先安装axios: 1):npm install 2):npm install vue-axios --save 3):npm install qs.js --save //它的作用是能把json格 ...
- spring session 加载的时候一些配置问题
启动springboot时候的错误信息: An attempt was made to call the method org.springframework.boot.autoconfigure.s ...