编译OpenSSL 动态库/静态库以及运行时库的选择

Windows下编译OpenSSL的方法
1、安装ActivePerl
初始化的时候,需要使用perl。 perl可以从 http://www.activestate.com/ActivePerl 下载。
2、使用VS下的Visual Studio 20xx Command Prompt进入控制台模式
VS2005的命令: "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
3、解压缩openssl的包,通过cd命令切换到openssl的目录

4、执行: perl configure VC-WIN32  
5、执行: ms\do_ms  
6、选择不同的编译结果
1) 执行: nmake -f ms/ntdll.mak
该命令生成动态库,默认使用的是MD
2) 执行: nmake -f ms/nt.mak
该命令生成静态库,默认使用的是MT
3) 想生成使用静态链接运行时库的动态库则采用下面方法
复制一个ntdll.mak并命名为ntdll_mt.mak,修改里面的 “CFLAG=  /MD /Ox ..............” 为 /MT  ,然后重新编译,执行 nmake -f ms/ntdll_mt.mak
4) 想生成使用动态链接运行时库的静态库则采用下面方法
复制一个nt.mak并命名为nt_md.mak,修改里面的 “CFLAG=  /MT /Ox ..............” 为 /MD  ,然后重新编译  ,执行 nmake -f ms/nt_md.mak
如果想要生成Debug版本的,同理,修改运行时库选项 /MTd  /MDd 注意大小写一定要一致
动态库生成的位置: 如果编译成功,最后的输出都在out32dll目录下 : 包括可执行文件 、两个dll和两个lib文件。 最终编译出来的结果都存放在out32dll子目录下,常用的文件包括libeay32.lib,libeay32.dll,ssleay32.lib,ssleay32.dll以及openssl.exe。中间生成的obj文件都在tmp32dll子目录下,可以把它们删掉。
静态库生成的位置:如果编译成功,最后的输出都在out32目录下,中间生成的obj文件都在tmp32子目录下。

7.运行  nmake -f ms\ntdll.mak test 。检查上一步安装编译是否成功。
 
8.运行nmake -f ms\ntdll.mak install --prefix=C:\openssl.
 
9.检查安装结果。打开资源管理器,在C:\openssl目录下将看到bin, include, lib三个文件夹。bin目录下包括openssl.exe(), ssleay.dll(),libeay.dll(),lib目录下包括两个lib文件爱你,即ssleay32.lib,libeay.lib,分别是ssleay.dll、libeay.dll动态链接库对应的lib文件。include目录包括了openssl开发设计的头文件。

需要注意的是:
1: 在使用 perl configure VC-WIN32时,VC-WIN32一定要大写,否则会出现
.\crypto\asn1\n_pkey.c(106) :error C2370: 'NETSCAPE_PKEY_it' : redefinition; di
fferent storage class
.\crypto\asn1\n_pkey.c(103) : see declaration of 'NETSCAPE_PKEY_it'
NMAKE : fatal error U1077: 'cl' : return code '0x2'的错误,

10.其它命令:
nmake -f ms/ntdll.mak clean  // 清除编译的中间文件
nmake -f ms/ntdll.mak install  // 安装  ,主要是linux下面会自动放到程序目录中 
nmake -f ms\ntdll.mak test //检查上一步安装编译是否成功。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值