WIN10 GMSSL编译
从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编译的更多相关文章
- Win10下编译OpenJDK8
导航目录 Win10下编译OpenJDK8 相关参考文章 编译环境 编译前准备 1.安装 Visual Studio 2010 Professional 2. 准备OpenJDK8 3. 编译JDK环 ...
- Win10上编译CoreCLR的Windows和Linux版本
一.编译环境 首先,不管是Windows还是Linux版本CoreCLR的编译,都是在Windows10上进行的. 二.CoreCLR for Windows 在Windows上做编译怎么能少得了Vi ...
- VS2015在win10上编译的程序在Win7上运行的方法
在win10系统上使用vs2015编译了一个32位的应用程序.在win7上报错无法启动. 下面的win7系统上是可以运行的 无法运行的win7系统: 报错: 1.应用程序无法正常启动(0xc00000 ...
- win10 cmake编译 opencv4.0 + pyhton3.7x64
在超极本上本来不想编译了,反正没有cuda.但发现即使下载的opencv_contrib也不包含sift等等nonfree库了,要自己编译开编译选项才可以.坑啊,自己编译吧.反正opencv已经这么庞 ...
- Win10 + vs2017 编译并配置tesseract4.1.0
tesseract 是一个开源的OCR (Optical Character Recognition , 光学字符识别) 引擎,本文就介绍一下自己在编译 tesseract4.1.0时遇到的一些坑,希 ...
- win10+vs2008编译比特币1.0版源码总结
https://zhuanlan.zhihu.com/p/25074960 https://zhuanlan.zhihu.com/p/25095222 总体上是参考这两个链接,感谢大神的分享,但是中间 ...
- win10 + VS2015 编译 ARPACK
step 1: 下载ARPACK , mingw-w64-install 和 mingw-get-inst-20120426.exe: step 2: 安装 MinGW-64默认安装路径即可. ste ...
- VS2015在win10上编译的程序不能在Win7上运行的原因
研究了下,搞懂原理了.是VS 2015 编译的问题,因为我是Win 10 ,所以会用到win 10 的SDK ,这个SDK 依赖了Universal C Runtime ,就是API-MS-CRT-X ...
- 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 ...
随机推荐
- 内部排序算法(交换排序,插入排序)注意点(C语言实现)
对于算法思想的理解可以参考下面的这个帖子,十大经典排序算法(动图演示) - 一像素 - 博客园,因为算法的逻辑和数学很像,相应的基础资料一般也能在网上找到,所以,本帖子这谈论一些重要的注意点,其他人讲 ...
- webgl变换:深入图形平移
在以前的文章里,不管是绘制图形,绘制点亦或者是改变色值,所有的内容都是静态的. 在 webgl 里,图形的运动分为 平移.旋转.缩放 三种类型. 接下来,我们会从零基础开始,一点一点来深入了解图形如何 ...
- 单点突破:MySQL之日志
前言 开发环境:MySQL5.7.31 日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息.若数据库发生故障,可通过不同日志记录恢复数据库的原来数据.因此实际上日志系统直接决定 ...
- 【逆向实战】ES文件浏览器未授权访问漏洞(CVE-2019-6447)具体分析及利用
/作者:Kali_MG1937 CSDN博客号:ALDYS4 QQ:3496925334 未经许可,禁止转载/ 漏洞简介 CVE-2019-6447是Android端上的一个知名软件:ES文件浏览器的 ...
- 高吞吐、低延迟 Java 应用的 GC 优化实践
本篇原文作者是 LinkedIn 的 Swapnil Ghike,这篇文章讲述了 LinkedIn 的 Feed 产品的 GC 优化过程,虽然文章写作于 April 8, 2014,但其中的很多内容和 ...
- Redis不是只有get set那么简单
我以前还没接触Redis的时候,听到大数据组的小伙伴在讨论Redis,觉得这东西好高端,要是哪天我们组也可以使用下Redis就好了,好长一段时间后,我们项目中终于引入了Redis这个技术,我用了几下, ...
- csps2019AFO祭
预感可能是我写的最长的博客 Day 0 收拾收拾东西然后来机房各种颓废,因为很懒所以也不想敲板子从luogu随便看了看题就发现不会, 于是愉快的耸题解代码,然后快出发前接受来自各种老师的毒奶... ...
- [翻译]在GC上加入DPAD
本文90%通过机器翻译,另外10%译者按照自己的理解进行翻译,和原文相比有所删减,可能与原文并不是一一对应,但是意思基本一致. 译者水平有限,如果错漏欢迎批评指正 译者@Bing Translator ...
- text-decoration属性作用和方法
text-decoration-line(注释文本添加一条装饰线):none(文本中没有线条). underline(文本的下方显示一条线). overline(文本的上方将显示一条线). line- ...
- Golang去除字符串前后空格
Golang去除字符串前后空格 实现Demo package main import "fmt" func DeletePreAndSufSpace(str string) str ...