从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. GO学习-(17) Go语言基础之反射

    Go语言基础之反射 本文介绍了Go语言反射的意义和基本使用. 变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息. 值信息:程序运行过程中可动态变化的. 反射介绍 反射是指 ...

  2. Go语言协程并发---互斥锁sync.Mutex

    package main import ( "fmt" "sync" "time" ) /* mt.Lock() 抢锁 一次只能被一个协程锁 ...

  3. 给powershell增加类似于linux的alias功能

    给powershell增加类似于快捷方式的功能(类似于linux的alias) 首先执行 set-executionpolicy remotesigned 允许powershell执行脚本 然后执行e ...

  4. NVIDIA深度架构

    NVIDIA深度架构 本文介绍A100 GPU,NVIDIA Ampere架构GPU的重要新功能. 现代云数据中心中运行的计算密集型应用程序的多样性推动了NVIDIA GPU加速的云计算的爆炸式增长. ...

  5. 基于Kaggle的图像分类(CIFAR-10)

    基于Kaggle的图像分类(CIFAR-10) Image Classification (CIFAR-10) on Kaggle 一直在使用Gluon's data package数据包直接获得张量 ...

  6. Hadoop 数据迁移用法详解

    数据迁移使用场景 冷热集群数据分类存储,详见上述描述. 集群数据整体搬迁.当公司的业务迅速的发展,导致当前的服务器数量资源出现临时紧张的时候,为了更高效的利用资源,会将原A机房数据整体迁移到B机房的, ...

  7. springboot实现自定义拦截器

    为了更容易理解,我们通过一个代码例子来演示. 例子: 我们现在要访问http://localhost:8080/main.html页面,这个页面需要登录之后才能够浏览,没登录不能浏览. 那么现在问题来 ...

  8. JSON.parse无双引号如何实现转换

    用JSON.parse()做转换,必须用双引号包起来.但是我用chrome的devtools时,它可以自动转换.于是上网查了一下,原来可以通过replace方法格式化一下.(修改后可以兼容日期格式) ...

  9. 【NX二次开发】Block UI 线条颜色/线型/宽度

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  10. itools安装程序无法创建临时文件夹

    做个记录: itools链接ios设备后,安装程序包时提示:无法创建临时文件夹 主要原因可能有以下几点 1.手机储存空间不足. 2.驱动组建被删除了,重启管理软件会自动跟新驱动. 解决办法:1.清除空 ...