本文档中包含,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一样,如下图。