从git上拉取GMSSL代码

http://gmssl.org/上可以拉取,或者直接从git上https://github.com/guanzhi/GmSSL拉也行。

我是在git上下的,文件为gmssl-master.zip,访问Git网络时好时坏,CSDN好像有提供镜像之类的。PS:从git上拿的会有点问题(解决了),后面细说,但从官网提供的下载编译我当时是遇到了其他错误信息(没解决)。

环境

  • Visual studio 2019 项目使用最新的VS就行,别用VC等老古董。
  • perl 官网下,正常安装就行,不过官网一打是开给的命令行下载的方式,我怕搞不定,直接百度搜资源下的。ActivePerl5_32这是我的版本。
  • NASM 一个汇编器,没有的话,后面会有报错(但可以用参数选择不使用汇编,忽略掉这个错误),下文细说。直接百度搜,下载,我下的是nasm-2.14.03rc2-installer-x64.exe,后面直接安装。然后设置系统环境变量,把安装的路径添加到path里,就ok了。PS:在添加环境变量后,再启动的命令行才会读到这个变量。

命令行生成makefile和nmake执行

代码里是没有makefile文件的,使用pl脚本文件生成的makefile文件,这就是安装perl的原因

管理员方式启动VS的命令行到GMSSL的项目路径下,执行下面的命令(先别执行,看我下文错误信息,先改了再执行)

perl Configure VC-WIN32
nmake
nmake install

perl Configure VC-WIN32

  • 此命令如果没有下载NASM 会报:NASM NOT FOUND:xxxxxxx,但是在命令后面带上 no-asm 可以避开这个问题。
  • 正常执行后会成功生成makefile文件

nmake

  • 此命令开始编译文件,会报一个错误,如下:
libcrypto.* libcrypto-1_1.* && EXIT 1)
libcrypto-1_1.def : error LNK2001: 无法解析的外部符号 EVP_get_ciphernames
libcrypto-1_1.def : error LNK2001: 无法解析的外部符号 EVP_get_digestnames
libcrypto.lib : fatal error LNK1120: 2 个无法解析的外部命令
NMAKE : fatal error U1077: “link”: 返回代码“0x1”

此时需要拿到历史版本的names2.c文件替换掉当前源码中(GMSSLPATH\crypto\evp)names2.c文件,我看git上的历史版本已经没有了,但我从发布版本(此时仅一个)中找到了

git上:





git地址:https://github.com/guanzhi/GmSSL/releases

CSDN上:



CSDN地址:https://codechina.csdn.net/mirrors/guanzhi/gmssl/-/releases/gmbrowser-v0.1?spm=1033.2243.3001.5876

在同样的目录下拿到names2.c文件,我拿的版本对应的文件修改日期为‎2018‎年‎4‎月‎6‎日,替换自己下载的源码中的文件即可

然后执行nmake

如果你很不幸没有看到我前文劝你先别执行的话,那么你需要删掉你已经报错的源文件,重新解压出来干净的文件,再替换文件,最后再nmake

nmake install

执行后将在 C:\Program Files (x86)\GmSSL 目录下生成如下目录结构:


end

WIN10 GMSSL编译的更多相关文章

  1. Win10下编译OpenJDK8

    导航目录 Win10下编译OpenJDK8 相关参考文章 编译环境 编译前准备 1.安装 Visual Studio 2010 Professional 2. 准备OpenJDK8 3. 编译JDK环 ...

  2. Win10上编译CoreCLR的Windows和Linux版本

    一.编译环境 首先,不管是Windows还是Linux版本CoreCLR的编译,都是在Windows10上进行的. 二.CoreCLR for Windows 在Windows上做编译怎么能少得了Vi ...

  3. VS2015在win10上编译的程序在Win7上运行的方法

    在win10系统上使用vs2015编译了一个32位的应用程序.在win7上报错无法启动. 下面的win7系统上是可以运行的 无法运行的win7系统: 报错: 1.应用程序无法正常启动(0xc00000 ...

  4. win10 cmake编译 opencv4.0 + pyhton3.7x64

    在超极本上本来不想编译了,反正没有cuda.但发现即使下载的opencv_contrib也不包含sift等等nonfree库了,要自己编译开编译选项才可以.坑啊,自己编译吧.反正opencv已经这么庞 ...

  5. Win10 + vs2017 编译并配置tesseract4.1.0

    tesseract 是一个开源的OCR (Optical Character Recognition , 光学字符识别) 引擎,本文就介绍一下自己在编译 tesseract4.1.0时遇到的一些坑,希 ...

  6. win10+vs2008编译比特币1.0版源码总结

    https://zhuanlan.zhihu.com/p/25074960 https://zhuanlan.zhihu.com/p/25095222 总体上是参考这两个链接,感谢大神的分享,但是中间 ...

  7. win10 + VS2015 编译 ARPACK

    step 1: 下载ARPACK , mingw-w64-install 和 mingw-get-inst-20120426.exe: step 2: 安装 MinGW-64默认安装路径即可. ste ...

  8. VS2015在win10上编译的程序不能在Win7上运行的原因

    研究了下,搞懂原理了.是VS 2015 编译的问题,因为我是Win 10 ,所以会用到win 10 的SDK ,这个SDK 依赖了Universal C Runtime ,就是API-MS-CRT-X ...

  9. win10+vs2015编译caffe的cpu debug版本、部署matcaffe

    一.编译caffe 1.安装python-3.5.2-amd64.exe https://www.python.org/ftp/python/3.5.2/python-3.5.2-amd64.exe ...

随机推荐

  1. 更短且不失高效的UUID生成算法

    Java原生的UUID长度为36位,嫌长 这里自己实现了一套自己的算法,来生成较短的UUID 由雪花算法启发而来, 大致原理是利用时间戳+随机值做值,然后转换成62进制(当然这个进制数你也可以搞成更多 ...

  2. harbor搭建及使用

    harbor搭建及使用   1 系统及软件版本 1.1 系统版本 # uname -a Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP ...

  3. 学习Python中出现的错误集合(不定时更新)jupyter平台

    出现的问题:1. 本图的错误,一个是line 7 init的两侧应该是是双下划线"__"导致所示错误 2. 本图的错误是 line 12 Student.student_tatal ...

  4. TVM如何训练TinyML

    TVM如何训练TinyML 机器学习研究人员和从业人员对"裸机"(低功耗,通常没有操作系统)设备产生了广泛的兴趣.尽管专家已经有可能在某些裸机设备上运行某些模型,但是为各种设备优化 ...

  5. 英特尔内存革新助平安云 Redis 云服务降本增效

    英特尔内存革新助平安云 Redis 云服务降本增效 英特尔 傲腾 数据中心级持久内存的引入,为平安云的降本增效开启了一条新的道路.通过对平安云 Redis 数据库产品的支持,用户能享受到性能优异且价格 ...

  6. Python OpenCV图片转视频 工具贴(三)

    Python OpenCV图片转视频 粘贴即用,注意使用时最好把自己的文件按照数字顺序命名.按照引导输入操作. # 一键傻瓜式引导图片串成视频 # 注意使用前最好把文件命名为数字顺序格式 import ...

  7. pycharm在虚拟机跑深度学习Mac

    1.在PyCharm里配置部署环境 打开PyCharmTools > Deployment > Configuration, 新建一个SFTP服务器,名字自己取: 输入如下图配置,注意这里 ...

  8. WordPress简介

    WordPress是什么? WordPress是一款免费开源的内容管理系统(CMS),目前已经成为全球使用最多的CMS建站程序.根据 W3techs 的最新统计(截至2021年4月),在全球的所有网站 ...

  9. 空指针的解决方案Optional包装类

    有道云笔记地址 (建议有道云打开,markdown文档,直接拷贝过来有一些问题) 引言 在java的开发中,有一个问题始终会伴随着开发的进程.记得我第一个项目的时候,有一个同事在评论我的代码的时候说到 ...

  10. 11张流程图帮你搞定 Spring Bean 生命周期

    在网上已经有跟多Bean的生命周期的博客,但是很多都是基于比较老的版本了,最近吧整个流程化成了一个流程图.待会儿使用流程图,说明以及代码的形式来说明整个声明周期的流程.注意因为代码比较多,这里的流程图 ...