使用版本: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)