Windows 7 64位安装OpenSSL

环境:Windows 7 64位系统、VS2010、ActivePerl、NASM、OpenSSL源码(版本:openssl-1.0.2n)

1 准备环境

VS2010下载安装:百度

ActivePerl、NASM下载安装及环境变量的配置参考:http://bbs.csdn.net/topics/392193545?page=1

OpenSSL源码下载:https://www.openssl.org/source/

2 安装OpenSSL

1、设置编译环境

打开Visual Studio x64 Win64命令提示(2010)工具:


执行命令:

编译32位库:

cd D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
vcvars32.bat

编译64位库:

cd D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
vcvars64.bat

注: D:\Program Files (x86)\Microsoft Visual Studio 10.0 为VS2010安装目录

2、进入OpenSSL源码目录,为目标操作系统配置

编译32位库:

perl Configure VC-WIN32 no-asm --prefix="C:\OpenSSL"



编译64位库:

perl Configure VC-WIN64A



注: "C:\openssl-1.0.2n"为源码目录,no-asm表示不用汇编,--prefix后面为需要安装的目录,编译64位库默认安装路径为"C:\user"

3、准备目标环境,生成编译文件

编译32位库:

ms\do_ms.bat

编译64位库:


注: 执行后,在ms目录下会生成 nt.mak 和 ntdll.mak 两个编译配置文件,nt.mak 用于生成静态lib库,ntdll.mak 用于生成动态dll库

4、编译动态库

nmake -f ms\ntdll.mak

编译32位库:


编译64位库:


5、测试动态库

nmake -f ms\ntdll.mak test

编译32位库:


编译64位库:


注: 最后显示"passed all tests"表示测试成功

6、安装动态库

nmake -f ms\ntdll.mak install

编译32位库:


编译64位库:


注:成功则会在相应目录生成动态库及相关文件

7、说明

  • 以上编译的是release库,若编译debug库,则将以上第2步中的VC-WIN32或VC-WIN64A改成debug-VC-WIN32或debug-VC-WIN64A即可;
  • 以上编译的是动态库,若编译静态库,则将以上第4、5、6步中的ntdll.mak改成nt.mak即可;
  • 确保第4步之前没有已经编译过的文件,清除上次动态库的编译:nmake -f ms\ntdll.mak clean,清除上次静态库的编译:nmake -f ms\nt.mak clean

8、遇到的问题

  • 第4步编译32位库:


解决方法:降低警告级别,编译动态库打开ntdll.mak文件,编译静态库则打开nt.mak,将CFLAG参数中的-W3改成-W0即可:


  • 编译64位动态库成功,使用Dependency Walker查看生成的动态库无信息:

解决方法:使用最新的64位版本的Dependency Walker(这个问题找了好久,开始一直以为是生成的动态库有问题!):


9、拓展知识

  • 32位与64位:应用程序、操作系统、库的关系:

    http://blog.csdn.net/github_27886083/article/details/45456809

  • 使用VS自带的Dumpbin工具判断动态链接库.dll和应用程序.exe是32位还是64位:

    http://blog.csdn.net/jiang111_111shan/article/details/70186279

10、参考资料

https://wiki.openssl.org/index.php/Compilation_and_Installation#W64

http://bbs.csdn.net/topics/392193545?page=1

https://my.oschina.net/jathon/blog/1610759

https://software.intel.com/zh-cn/blogs/2013/12/22/windows-openssl


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值