Windows环境下使用VS2010编译OpenSSL

本文详细介绍了如何在Windows上使用Visual Studio 2010编译OpenSSL。首先,需要安装VC++ 2010,然后下载OpenSSL源码并解压。通过Visual Studio 2010 Command Prompt进入控制台,执行perl configure VC-WIN32、msdo_ms.bat等命令进行编译。编译过程中可能出现'perl'命令找不到的问题,需按指定链接设置。编译成功后,可以在相应目录找到静态库和动态库的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作:

1、安装VC++ 2010。

2、需要perl的支持,下载最新ActivePerl并安装,网址:http://www.activestate.com/

3、下载 Openssl并解压,下载网址:https://www.openssl.org/source/


编译步骤:

1.使用VS200510下的Visual Studio 2010 Command Prompt进入控制台模式

  开始菜单->所有程序->Microsoft->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 2010 Command Prompt

2.进入openssl源码的目录

  命令行键入 cd /D E:\openssl-1.0.1p  //把路径替换成自己的源码路径

3.命令行键入 perl configure VC-WIN32

运行上述命令后如果出现错误:‘perl’ 不是内部或外部命令,也不是可运行的程序或批处理文件。则需要按照http://www.vcerror.com/?p=2021这上面的方法设置下

4.命令行键入 ms\do_ms.bat

另外两种方式 如果使用也必须保证本机安装有相应的编译器才能使用。 
:ms\do_masm (默认vc自带的;也可以自己下载masm并安装) 
:ms\do_nasm (需要下载nasm)

注意:请不要cd进ms目录再执行do_ms.bat命令,会因为当前目录不对而报错。

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

注意:此处编译需要较长时间,请耐心等待,切勿人为中断。

上述版本在编译 openssl-1.0.1p 及更低版本的时候没有问题,但如果编译高版本,比如 openssl-1.0.2d ,编译的时候会出现如下错误:

tmp32dll\sha1-586.asm(1432) : error A2070:invalid instruction operands
tmp32dll\sha1-586.asm(1576) : error A2070:invalid instruction operands

具体解决方法可参考文章:http://www.vcerror.com/?p=2023

到此编译已经完成,将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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值