在VS2013下编译Gmssl库

使用版本:GmSSL 2.4.0 + VS2013

GmSSL官方文档里面,windows下编译和安装说明的非常简单,三行命令即可搞定。

但是往往是理想很丰满,现实很骨感-_-||,下面总结自己在windows下编译GmSSL的过程。(。_ 。)

1. 下载GmSSL源码、ActivePerl和Visual Studio 2013以及Nasm

按用户手册描述,在Windows编译,需安装ActivePerl和Visual Studio。(本人安装的是VS 2013以及ActivePerl-5.24。)

下载并安装ActivePerl。

下载地址:http://www.activestate.com/activeperl/downloads

打开命令提示符,将其定位到“安装目录\Per64\eg”目录下,执行 perl example.pl,若提示:Hello from ActivePerl! 则说明Perl安装成功,可以开始使用Perl的相关命令来进行GmSSL的安装了。

下载并安装Nasm汇编器,并添加到系统环境变量Path中。

下载地址:http://www.nasm.us/ 

从项目官网http://gmssl.org/下载源码包GmSSL-master.zip,将源码包解压后,看到的工程目录基本跟openssl 一致。

2. 编译第一步

以管理员身份打开Visual Studio Tools下的Developer Command Prompt控制台,通过cd命令进入到GmSSL-master解压目录后,输入perlConfigure VC-WIN32。

这时候可能有出现这个问题:

 It looks like you don't have either nmake or dmake.exe on your path......

提示说得很清楚,但我明明在vs里面有nmake.exe,为什么找不到呢?(之前没考虑太多选择另下一个dmake来解决,但回想起来可能是没有添加坏境变量PATH,大家可以自行尝试O(∩_∩)O

提示中表示命令行:ppm install dmake可以下载dmake。嗯,(¬_¬)显然这条对我也行不通,大家可以自行尝试。

这里我下载了一个Dmade文件,链接如下:

http://search.cpan.org/CPAN/authors/id/S/SH/SHAY/dmake-4.12-20090907-SHAY.zip

解压之后将路径添加到环境变量。

然后再次perlConfigure VC-WIN32,OK顺利通过编译第一步^_^。

3. 编译第二步

命令行中继续输入nmake.

这时候可能有出现这个问题:"......VC\BIN\cl.EXE": 返回代码“0x2”

第一反应先检查代码本身,在CMD窗口中往上翻,会有error的错误原因以及定位行;

"...ssl\statem\statem_gmtls.c<1391>: error C2146: 语法错误:检测到“{”, 缺少函数头.....”

打开statem_gmtls.c查看第1391行

发现并没有什么问题,只是前面有几行注释,猜测是否是因为nmake在编译时误把注释代码与函数头之间的换行吞噬掉了,导致无法检测到函数头。

因此删除调用这俩行注释,保存,然后再次nmake..... 果然顺利编译通过第二步(^-^)V。

4. 编译安装第三步

继续输入nmake install....

这一步基本没什么问题,安装完成后,可以在C:\Program Files (x86)\GmSSL下看到所安装的GmSSL.

至此, windows下GmSSL在VS2013中的编译安装结束。d(゚∀゚d)

猜你喜欢

转载自blog.csdn.net/lt4959/article/details/85984385