OpenSSL 静态、共享编译,解决ms\do_ms报错

本文档中包含,VS2010 、VS2015下编译OpenSSL,以及交叉使用下的问题。

安装环境:

操作系统:window10(64位)

C++编译器:VS2010   除了VS2010 我电脑上还有VS2015 ,这个不影响后面的编译。

工具下载: (下载正确的包才是后面顺利进行的前提)

1)下载ActivePerl:最新版即可。如果要编译32位的OpenSSL一定要选择下载Win32的ActivePerl。

下载地址http://www.activestate.com/activeperl/downloads/      (安装过程只要按照Windows下一般程序的安装步骤进行即可)

安装完成之后,系统环境变量应该就已经有Perl了,如果没有自行添加,如下图。


2)下载openssl-1.0.2l 并解压(注意其他版本,有些版本并不适合各个教程,下方有说明)

下载地址:http://www.openssl.org/source/(建议解压后的文件路径为C:\openssl,PS:只是为了下文的内容匹配,并且方便寻找,其他路径也无不影响)。

3)下载NASM

下载地址:http://nasm.sourceforge.net/

安装,配置环境变量

1)首先设定好环境变量


2)使用Visual Studio命令提示(2010)进入控制台模式

 使用cd命令将目录指向C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin(PS:自己的VC安装路径), 命令行键入vcvars32,运行vcvars32.bat..完成后进入OpenSSL源码的目录(C:\openssl)

3)执行Configure命令(配置编译参数)(需将目录跳到OpenSSL源码目录下)

在命令行中键入"perl Configure VC-WIN32 --prefix=c:\openssl"(PS:--prefix=c:\openssl命令为指定安装位置)

4)运行ms\do_nasm命令(需将目录跳到OpenSSL源码目录下)

5.1)要生成共享DLL,运行“nmake -f ms\ntdll.mak”命令进行代码编译(需将目录跳到OpenSSL源码目录下)

5.2)要生成静态LIB,运行“nmake -f  ms\nt.mak”命令进行代码编译(需将目录跳到OpenSSL源码目录下)

6)测试使用命令“nmake -f ms\ntdll.mak test”(若安装成功则可以使用此命令来验证)


在项目中用的时候,头文件在 .\inc32\openssl 文件夹下,共享Dll文件在 .\out32dll 文件夹中,静态LIB在 .\out32文件夹中。

用VS2010 静态编译生成的库,在VS2015 下链接会出现下面的错误。


有两种解决办法:
1.在项目的平台工具集中选择VS2010,重新生成项目,这中方法需要电脑中有安装VS2010。

2.用VS2015的开发环境,对OpenSSL重新编译。

系统环境变量设置:


选择VS2015 x86 本机工具命令提示符

命令输入和VS2010一样,如下图。




猜你喜欢

转载自blog.csdn.net/qq_28016947/article/details/73499492