首先,此文适用于openssl1.1.0h源码在windows环境下编译,详细安装的教程请见https://www.jianshu.com/p/2d28277a0875,此安装步骤对于Visual Studio 2015同样适用。
安装过程注意以下几点:
(1)适用visual Studio编译时,如果编译32位则选择 x86 本机工具命令提示 ,如果编译64位则选择 x64 本机工具命令提示,如下图为visual Studio 2015。
(2)输入perl configure编译后,如果报错是dmake找不到,直接按照错误的提示信息,输入ppm install dmake命令先安装dmake,然后重新输入命令。
(3)对于输入命令 perl Configure VC-WIN32 no-shared no-asm --prefix="D:\SDK\openssl-1.1.0h\build\x86" --openssldir="D:\SDK\openssl-1.1.0h\build\x86\ssl",命令的格式因为编译版本的不同而不同,
其中VC-WIN32表示32位,VC-WIN64A表示64位;
no-shared表示是编译静态库,shared表示编译动态库;
编译debug版本还是release版本,比如在编译32位debug,使用 debug-VC-WIN32,同理于编译32位debug,对于release则本则是默认设置,因此不需要前缀,如直接是VC-WIN32。根据个人的需求修改命令结构。
(4)对于编译debug版本还是release版本据个人情况而定,如果调试使用可以编译debug,一般而言,编译release版本更好,无论你的程序运行是debug还是release模式去调用openssl库,release版本都可以成功调用。
(5)关于编译生成lib命名的问题,从openssl 1.1.0开始由原先的libeay32.lib、ssleay32.lib变成了libcrypto.lib、libssl.lib,一些加密方式也发生了变化。因此,如果你在网上搜索安装资料出现编译出现libeay32.lib、ssleay32.lib这样的库名,请不要意外。由于本文说的是openssl1.1.0h,则生成的lib为libcrypto.lib、libssl.lib。
以上也是本人在编译库时遇到问题的总结,如果有补充欢迎私聊我,谢谢啦!