Windows 下openssl安装与配置

网上方法很多,大部分是针对32位机的,自己的电脑因为是win7,64位,摸索了很久才安装成功.

 

环境

WIN7, 64位, vs2005


下载ActivePerl

配置过程中需要生成一些mak文件,这些生成代码用perl脚本生成,所以要安装一个ActivePerl.

网址: http://www.activestate.com/activeperl/

 我下载了两个版本:

[css]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. ActivePerl-5.16.2.1602-MSWin32-x64-296513.msi  
  2. ActivePerl-5.16.2.1602-MSWin32-x86-296513.msi  

装的是第一个版本,第二个版本没装成功.


下载openssl

网址 http://www.openssl.org/

我用的是openssl-0.9.8ze版本, 没试过其它版本是否可行.

把openssl-0.9.8ze.tar.gz解压到c盘根目录.

 

安装步骤:

(可以参照openssl目录下的install.win32)

1打开命令行

进入openssl源码目录。
cd c:/openssl-0.9.8.ze
执行perl Configure VC-WIN32

 

2执行运行ms\do_ms

另外两种方式如果使用也必须保证本机有编译器才能使用。

:ms\do_masm(默认vc自带的编译器;也也以自己下载安装)

:ms\do_nasm(需要自己下载)

 

DOS窗口转到D:\Microsoft Visual Studio 11.0\VC\bin目录

执行vcvars32.bat以配置环境变量.

 

4、跳到openssl目录下,编译动态链接库

cd c:/openssl-0.9.8.ze
执行 >nmake -f ms\ntdll.mak安装

 

如果编译成功,输出在out32dll目录下:包括可执行文件、两个dll和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll,ssleay32.lib

也可以输入:nmake -f ms\ntdll.mak test 测试安装是否成功,最后会显示 all tests passed提示,就代表成功了。

 


这里要特别强调一下,这种方法生成的是动库链接库, 也就是我们的应用工程如果要使用openssl, 编译时要指定

lib文件,程序发布时要用到相应的dll. 我遇到过一种情况是, 在win7下发布的使用openssl的程序无法运行,弹出

“运行时初始化相关的错误”, 但是在xp下编译,发布,在其它win7和winXP上都能运行. 估计是win7下没配置好,导致只能本机编译,运行,无法发布.

 

如果要把openssl编译成静态的库,只要把上面的ntdll.mak换成nt.mak就可以了,我试着用了一个静态的库,发现要解决很多编译时的兼容,冲突问题,建议不要使用静态方法.

 

(注意虽然是64位win7, 下生成的也是out32dll, 我也不知道为什么)

 

建立工程

打开vs2005,

在additionalinclude directories加上

"C:\openssl-0.9.8ze\include"

这个目录.

 

在additionallibrary directories加上

"C:\openssl-0.9.8ze\out32dll"

这个目录

 

代码类似下面这样:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #include<stdio.h>  
  2. #include<stdlib.h>  
  3. #include<string.h>  
  4. #include<time.h>  
  5. #include<openssl/bn.h>  
  6. #include<openssl/ec.h>  
  7. #include<openssl/rand.h>  
  8. #include<openssl/err.h>  
  9. #include<openssl/ecdsa.h>  
  10. #include<openssl/ecdh.h>  
  11. #include"sm2.h"  
  12.    
  13. #pragmacomment(lib,"libeay32.lib")  

编译不会有问题.同样在VC6下,把上面两个目录包含进来,编译也通过.

参考:http://blog.csdn.net/pony_maggie/article/details/8588888

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值