openssl编译及在VS2010中的使用

时间:2021-12-11 19:37:12

openssl编译方法:

刚开始用这个http://wenku.baidu.com/view/7df1b7edaa00b52acfc7ca6d.html?from=search没有成功,每次都是因为perl Configure VC-WIN32 的目录出错,Perl下载网址是http://www.activestate.com/activeperl/downloads,我用的版本是5.20.2.2002。openssl的下载网址是http://www.openssl.org/source/old/,我用的版本是openssl-1.0.1c,要完成windows下面的编译还需要用到VS2010,编译方式参考这个http://jingyan.baidu.com/article/d169e1864d4b4d436611d8a0.html,大致的编译步骤:

32位系统打开 VS2012 X86本机命令提示工具

7.1 打开所以程序

7.2 找到Microsoft Visual Studio 2012

7.3 打开VS2012 x86本机命令提示工具

编译openssl-1.0.1k库,编译步骤如下:

openssl-1.0.1k>perl Configure VC-WIN32

openssl-1.0.1k>ms\do_ms.bat

openssl-1.0.1k>nmake -f ms\ntdll.mak

最后生成的dll、lib都在out32dll文件目录中

一会就编译成功了,注意自己的系统是32为还是64位。

编译1.0.2的时候有可能遇到错误U1070,解决方式:http://bbs.csdn.net/topics/390986380禁用汇编
perl Configure VC-WIN32 no-asm
ms\do_ms

openssl在vs2010中的使用过程

将openssl下面的include目录附加

openssl编译及在VS2010中的使用

将编译好的openssl-1.0.1c\out32dll目录作为库目录

openssl编译及在VS2010中的使用

在“附加依赖项”中,加入libeay32.lib和ssleay32.lib文件(这两个文件都在openssl-1.0.1c\out32dll目录下)

openssl编译及在VS2010中的使用

去掉预编译头:

openssl编译及在VS2010中的使用

注意输出目录和输出文件保持一致:

openssl编译及在VS2010中的使用

openssl编译及在VS2010中的使用

之前代码一直报错就是因为输出目录和输出文件不一致导致的,至于原因,参考博客:http://blog.csdn.net/yyhero1/article/details/19272637

还需要修改OpenSSL安装目录的下的include/bn.h文件,

将#define BN_ULLONG unsigned long long

    #define BN_ULONG unsigned long long
    #define BN_LONG long long
    分别修改为:
    #define BN_ULLONG ULONGLONG
    #define BN_ULONG ULONGLONG
    #define BN_LONG LONGLONG

    否则,会出现编译错误。