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也是,近两年开发的软件工具基本都是跨平台 ...
随机推荐
- 参数类型*&是什么意思?
前两天摸鱼聊天的时候遇到一个问题,一个链表的函数中,有一个参数显得很奇怪 (大概是一个样子的)ListNode<T>*& l 这个参数l除了用了一个*之外还用了一个&,直觉 ...
- jquery header选择器 语法
jquery header选择器 语法 作用::header 选择器选取所有标题元素(h1 - h6).广州大理石机械构件 语法:$(":header") jquery heade ...
- XML 简介 – 什么是 XML?
XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. XML 很重要,也很容易学习. <?xml version="1 ...
- Javascript高级程序设计第三版-笔记
1.JS数值最大值最小值: >Number.MIN_VALUE <5e-324 >Number.MAX_VALUE <1.7976931348623157e+308 判断数值是 ...
- cin.clear()、cin.sync()
看机器学习时,发现之前学的C++代码忘了,cin.clear().cin.sync() cin.clear():将流中的所有状态值都重设为有效值 cin.sync():清空流 这个很有意思,如果没有c ...
- linux cut sort wc sed>vi awk (文本处理)
cut: 显示切割的行数据 -f: 选择显示的列 (1: 显示第一列; 1,3: 显示第一列.第三列; 1-3: 显示第一列到第三列) -s: 不显示没有分隔符的行 -d: 自定义分隔符(' '空格 ...
- NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码)
NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码) 七月,酷暑难耐,认识的几位同学参加知乎看山杯,均取得不错的排名.当时天池AI医疗大赛初赛结束,官方正在为复赛进行平台调 ...
- python jieba分词(结巴分词)、提取词,加载词,修改词频,定义词库 -转载
转载请注明出处 “结巴”中文分词:做最好的 Python 中文分词组件,分词模块jieba,它是python比较好用的分词模块, 支持中文简体,繁体分词,还支持自定义词库. jieba的分词,提取关 ...
- CANopen的相关学习
CANopen是一种架构在控制局域网路(Controller Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线. ...
- VGA接口一根针折了
注意!!要由 针 对照着 接口 看!!别看反了! VGA接头图如下: VGA接口,15根针,其对应接口定义如下: 1红基色 red 2 绿基色 green 3 蓝基色 blue 4 地址码 ID Bi ...