在VC中编译和使用OpenSSL

在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。

下载最新版本的Perl:http://downloads.activestate.com/ActivePerl/releases/5.20.1.2000/ActivePerl-5.20.1.2000-MSWin32-x64-298557.msi。然后安装之。

Windows 一定要使用 ActivePerl 主要是由于换行跟Linux ,Unix 的不同,如果使用其他的Perl生成的MakeFile 文件,会导致NMake无法正常的编译。

另外,一定要确保ActivePerl在系统的PATH 环境变量中在最前面,并且在命令行中执行 PATH命令的输出是跟环境变量中是一致的,Windows中有时候会发生刚刚添加的环境变量不能及时更新到命令行界面的问题,即使是你已经重新打开新的命令行窗口了。

下载最新版本的OpenSSL:http://www.openssl.org/source/openssl-1.0.1j.tar.gz

一定要使用最新的OpenSSL,早期的版本有Heartbleed的BUG,另外一定要是新下载并且刚刚解压缩出来的,没有修改过的文件,有时候,某些不经意的修改会导致编译不成功。

然后将源码释放的c:\openssl-1.0.1j目录中。

进入openssl源码目录。

cd c:\openssl-1.0.1j

以下为参照该目录下的文件INSTALL.W32的执行过程:

运行configure:

perl Configure VC-WIN32 --prefix=c:/openssl

创建Makefile文件:

ms\do_ms

此处建议执行 do_ms ,有时候执行do_nasm会不正常,尽管文档中说执行 do_nasm

编译动态库:

nmake -f ms\ntdll.mak

编译静态库:

nmake -f ms\nt.mak

测试动态库:

nmake -f ms\ntdll.mak test

测试静态库:

nmake -f ms\nt.mak test

安装动态库:

nmake -f ms\ntdll.mak install

安装静态库:

nmake -f ms\nt.mak install

清除上次动态库的编译,以便重新编译:

nmake -f ms\ntdll.mak clean

清除上次静态库的编译,以便重新编译:

nmake -f ms\nt.mak clean

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注