OpenSSL是一个广泛使用的安全套接字层密码库,这里讲解一下如何编译OpenSSL生成动态库。
编译所需的文件压缩包下载链接如下。
下载地址 下载完所需编译的压缩包后解压可以看到如下两个文件
1 安装ActivePerl和dmake
解压Perl_dmake,可以看到一个安装文件,运行这个exe程序
安装成功后接下来安装dmake,以管理员权限进入vs2015开发人员命令提示符
输入命令:ppm install dmake
dmake安装完成后如下图所示:
2 编译OpenSSL的32位动态库
解压openssl-OpenSSL_1_1_0f.zip,然后还是以管理权限进入vs2015开发人员命令提示符
使用cd 命令进入OpenSSL解压后的目录
cd C:\md5\openssl-OpenSSL_1_1_0f
配置如何编译OpenSSL,这一步非常重要,可以自己配置编译的库为动态库还是静态库,32位的还是64位的。
perl Configure VC-WIN32 shared no-asm --prefix="C:/md5/openssl_win32_release" --openssldir="C:/md5/openssl_win32_release/ssl"
下面解释一下上面的命令prefix="C:/md5/openssl_win32_release"表示一会编译生成的文件在这个目录下编译,这个目录是自己新建的,用户自己指定;openssldir="C:/md5/openssl_win32_release/ssl"表示编译生成的OpenSSL存放目录,当然这个目录也是自己新建的,用户都可以按照自己的想法指定存放目录。
配置完成效果如下:
接下来输入编译指令:
nmake
测试编译是否正确
nmake test
出现下图表示测试通过
安装编译的openssl库
nmake install
安装完成,如下图所示
清理安装完成后的一些无用文件
nmake clean
打开动态库的存放目录,可以看到OpenSSL动态库已经生成成功。
3 补充
要编译成静态库
在配置的这一步命令加上no-shared如下
perl Configure VC-WIN32 shared no-asm no-shared --prefix="C:/md5/openssl_win32_release" --openssldir="C:/md5/openssl_win32_release/ssl"
编译成win64版本,在系统版本里改成VC-WIN64A或者VC-WIN64I
perl Configure VC-WIN64A shared no-asm --prefix="C:/md5/openssl_win32_release" --openssldir="C:/md5/openssl_win32_release/ssl"
编译成debug版本的,加上–debug
perl Configure VC-WIN32 shared no-asm --debug --prefix="C:/md5/openssl_win32_release" --openssldir="C:/md5/openssl_win32_release/ssl"
编译成msvc模式为MT的
找到C:\md5\openssl-OpenSSL_1_1_0f\configdata.pm文件,搜索/MD将其修改为/MT
找到C:\md5\openssl-OpenSSL_1_1_0f\makefile,搜索/MD将其修改为/MT