Windows环境下使用VS2005编译OpenSSL

如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu、Google上一堆,但安装中还是遇到些问题,在这里记录下来希望能帮助大家不要在走弯路。注:我是在WinXP SP3下使用VS2005SP1下编译成功的,OpenSSL的版本是0.9.8l。

http://www.cnblogs.com/moonset7/archive/2009/12/18/1627317.html

 

准备工作:
下载OpenSSL源码  官方网站下载OpenSSL:http://www.openssl.org/source/
安装ActivePerl     官方网站下载ActivePerl:http://www.activestate.com/activeperl/

 

编译步骤:
1. 使用VS2005下的Visual Studio 2005 Command Prompt进入控制台模式
  开始菜单->所有程序->Microsoft->Microsoft Visual Studio 2005->Visual Studio Tools->Visual Studio 2005 Command Prompt
2. 进入openssl源码的目录
  命令行键入 cd D:/openssl-0.9.8l  //把路径替换成自己的源码路径
3. 命令行键入 perl configure VC-WIN32
  如果没安装ActivePerl将无法执行
4. 命令行键入 ms/do_ms
  这中间我遇到了两处报告%OSVERSION% is not defined at util/pl/VC-32.pl line 57.和Compilation failed in require at util/mk1mf.pl line 151. 好像可以忽略,反正我最后还是编译成功了。

命令行信息
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--> D:/openssl-0.9.8l> ms/do_ms
D:/openssl
-0.9.8l>perl util/mkfiles.pl  1>
MINFO
D:/openssl
-0.9.8l>perl util/mk1mf.pl no-asm VC-WIN32  1>
ms/nt.mak
D:/openssl
-0.9.8l>perl util/mk1mf.pl dll no-asm VC-WIN32  1>
ms/ntdll.mak
D:/openssl
-0.9.8l>perl util/mk1mf.pl no-asm VC-CE  1>
ms/ce.mak
%OSVERSION% is not defined at util/pl/VC-32.pl line 57
.
Compilation failed 
in require at util/mk1mf.pl line 151
.
D:/openssl
-0.9.8l>perl util/mk1mf.pl dll no-asm VC-CE  1>
ms/cedll.mak
%OSVERSION% is not defined at util/pl/VC-32.pl line 57
.
Compilation failed 
in require at util/mk1mf.pl line 151
.
D:/openssl
-0.9.8l>perl util/mkdef.pl 32 libeay  1>
ms/libeay32.def
D:/openssl
-0.9.8l>perl util/mkdef.pl 32 ssleay  1>ms/ssleay32.def

 5. 编译分两种情况,生成静态库和动态库
  (1) 如果是编译OpenSSL动态库,则在命令行键入 nmake -f ms/ntdll.mak
    编译成功课在文件夹out32dll里面查看输出的文件,包括应用程序的exe文件、lib文件、dll文件。
  (2) 如果是编译OpenSSL静态库,则在命令行键入 nmake -f ms/nt.mak
    编译成功课在文件夹out32里面查看输出的文件,包括应用程序的exe文件、lib文件。

 

  到此编译已经完成,将OpenSSL下的include文件夹、lib文件、dll文件考出,使用的时候包含进去就行了。

 

  另外还有几个命令可能会用到:

  测试OpenSSL动态库:nmake -f ms/ntdll.mak test
  测试OpenSSL静态库:nmake -f ms/nt.mak test
  安装OpenSSL动态库:nmake -f ms/ntdll.mak install
  安装OpenSSL静态库:nmake -f ms/nt.mak install
  清除上次OpenSSL动态库的编译,以便重新编译:nmake -f ms/ntdll.mak clean
  清除上次OpenSSL静态库的编译,以便重新编译:nmake -f ms/nt.mak clean

 

编译OpenSSL可能遇到的问题:
1. 启用Windows控制台(运行cmd)进行编译,执行第5步nmake -f ms/ntdll.mak或nmake -f ms/nt.mak会报错:
  'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。
2. 启用SDK Command Prompt进行编译,执行第5步nmake -f ms/ntdll.mak或nmake -f ms/nt.mak会报错:
  ms/uplink.c(11) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
  NMAKE : fatal error U1077: '"D:/Program Files/Microsoft Visual Studio 8/VC/bin/cl.EXE"' : return code '0x2' Stop.

上述问题解决方案:
1. 严格按第1步操作,启动Visual Studio 2005 Command Prompt进行编译,这个会自动配置环境。
2. 在执行第5步nmake -f ms/ntdll.mak前,进入D:/Program Files/Microsoft Visual Studio 8/VC/bin路径下(替换成自己的VC安装路径),命令行键入vcvars32,运行vcvars32.bat。然后再回到OpenSSL源码的目录(D:/openssl-0.9.8l),再执行第5步nmake -f ms/ntdll.mak或nmake -f ms/nt.mak

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值