Windows 下openssl安装与配置
来源:互联网 发布:seo域名查询 编辑:程序博客网 时间:2024/06/05 13:22
转自 http://blog.csdn.net/pony_maggie/article/details/8588888
网上方法很多,大部分是针对32位机的,自己的电脑因为是win7,64位,摸索了很久才安装成功.
环境
WIN7, 64位, vs2005
下载ActivePerl
配置过程中需要生成一些mak文件,这些生成代码用perl脚本生成,所以要安装一个ActivePerl.
网址: http://www.activestate.com/activeperl/
我下载了两个版本:
装的是第一个版本,64位的。
下载openssl
网址 http://www.openssl.org/
我用的是openssl-0.9.8g版本,解压到c盘根目录。
安装步骤:
(可以参照openssl目录下的install.win32)
1打开命令行
进入openssl源码目录。
cd c:/openssl-0.9.8.g
执行perl Configure VC-WIN32
2在c:/openssl-0.9.8.g目录运行ms\do_ms
另外两种方式如果使用也必须保证本机有编译器才能使用。
:ms\do_masm(默认vc自带的编译器;也也以自己下载安装)
:ms\do_nasm(需要自己下载)
3 DOS窗口转到C:\Program Files\Microsoft Visual Studio \VC98\bin目录(就是VC或VS对应的目录,你电脑可能有差异)
执行vcvars32.bat以配置环境变量.成功后显示如下:
4、跳到openssl目录下,编译动态链接库
cd c:/openssl-0.9.8.g
执行 >nmake -f ms\ntdll.mak
如果编译成功,输出在out32dll目录下:包括可执行文件、两个dll和两个lib文件: libeay32.dll, libeay32.lib, ssleay32.dll,ssleay32.lib
如果遇到"ml不是内部或外部命令"这样的错误,找到你电脑里的ml.exe文件拷贝到当前目录重新执行即可。
这里要特别强调一下,这种方法生成的是动库链接库, 也就是我们的应用工程如果要使用openssl, 编译时要指定
lib文件,程序发布时要用到相应的dll. 我遇到过一种情况是, 在win7下发布的使用openssl的程序无法运行,弹出
“运行时初始化相关的错误”, 但是在xp下编译,发布,在其它win7和winXP上都能运行. 估计是win7下没配置好,导致只能本机编译,运行,无法发布.
如果要把openssl编译成静态的库,只要把上面的ntdll.mak换成nt.mak就可以了,我试着用了一个静态的库,发现要解决很多编译时的兼容,冲突问题,建议不要使用静态方法.
下面来测试一下。
建立工程
打开vs2005,
在additionalinclude directories加上
"C:\openssl-0.9.8g\include"
这个目录.
在additionallibrary directories加上
"C:\openssl-0.9.8g\out32dll"
这个目录
代码类似下面这样:
编译不会有问题.同样在VC6下,把上面两个目录包含进来,编译也通过.
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows 下openssl安装与配置
- Windows下OpenSSL安装配置
- Windows下OpenSSL安装配置
- SM2算法第七篇:Windows下Openssl安装与配置
- windows下VS2010安装配置openssl
- windows下安装OpenSSL及配置
- windows下编译与安装OpenSSL
- windows下编译与安装OpenSSL
- IP首部校验和算法
- 判断俩个区间定时器是否重叠
- 算法之快速排序
- Linux用户和用户组的管理
- ArrayList Victor LinkedList区别
- Windows 下openssl安装与配置
- 不用安装Oracle客户端,远程连接Oracle数据库
- Javascript Object, Set, Map总结
- Android禁止状态栏下拉 4.4
- Android调试串口无法连接串口设备的问题及解决办法
- C++类的静态成员详细讲解
- poj2762 Going from u to v or from v to u?
- golang带cookie post get请求 例子
- 线性时间排序 计数排序(Counting Sort)