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

来源:互联网 发布:百度淘宝网购物商城 编辑:程序博客网 时间:2024/05/13 07:52
Windows下编译OpenSSL的方法
下载地址:http://www.openssl.org/source/
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//检查上一步安装编译是否成功。




原创粉丝点击