如何在 Windows 下编译 OpenSSL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 Windows 下编译 OpenSSL相关的知识,希望对你有一定的参考价值。

1、安装ActivePerl//初始化的时候,需要用到perl解释器
2、使用VS2010下的Visual Studio 2010 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)
3、解压缩openssl的包,进入openssl的目录
4、perl configure VC-WIN32
尽量在这个目录下执行该命令,否则找不到Configure文件,或者指定完整的Configure文件路径。
5、ms\\do_ms.bat
在解压目录下执行ms\\do_ms.bat命令
6、nmake -f ms\\ntdll.mak
7、nmake -f ms\\nt.mak

编译后
在openssl解压目录下执行,完成编译后。输出的文件在out32dll (6), out32 (7)里面,包括应用程序的可执行文件、lib文件和dll文件

注意:在运行第五步时,cl编译器会抱怨说.\\crypto\\des\\enc_read.c文件的read是The POSIX name for this item is deprecated(不被推荐的),建议使用_read。呵呵,我可不想将OpenSSL中的所有的read函数修改为_read。再看cl的错误代码error C2220,于是上MSDN上查找:
warning treated as error - no object file generated
/WX tells the compiler to treat all warnings as errors. Since an error occurred, no object or executable file was generated.
是由于设置了/WX选项,将所有的警告都作为错误对待,所以。。。

于是打开OpenSSL目录下的MS目录下的ntdll.mak文件,将CFLAG的/WX选项去掉,存盘。。。
继续执行nmake -f ms\\ntdll.mak
参考技术A 一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人员而言,在http://slproweb.com/products/Win32OpenSSL.html 上下载已经编译好的OpenSSL库是省力省事的好办法.对于高级的开发用户,他们可能需要适当的修改或者裁剪OpenSSL,那么编译它就成为了一个关键问题.本篇博客就是主要讲述如何早Windows上编译OpenSSL库

笔者按照一定的步骤成功了编译了OpenSSL库,步骤如下

在微软网站下载并安装VS Studio,笔者写博客之时的最新版本是2013,连接如下

从http://www.activestate.com/activeperl/downloads 下载并安装

从http://www.nasm.us/ 下载并安装Nasm汇编器

从http://www.openssl.org/下载并安装OpenSSL的最新Release包.笔者写博客之时,最新的OpenSSL包是

这里需要强调的是,读者未必需要完全按照笔者的步骤编译OpenSSL库,这里的部分次序是可以互换的

在完成所有上述5步后,我们就可以解压缩OpenSSL包,在对它进行修改便可以编译了.在解压缩后,所有的源代码放在openssl- 1.0.1e目录下,在此目录下,有两个文件INSTALL.W32, INSTALL.W64需要被关注.打开其中的任何一个文件,你会看到如何编译OpenSSL的各个步骤.这里,笔者将会再啰嗦一下

打开VS Studio命令行工具,如图1所示.若编译64位OpenSSL库,请打开Visual Studio x64 Win64 Command Prompt,反之亦然

如何在 win7 下编译 openssl?

编译环境:

win7 x64 openssl 1.1.0 vs2015 ActivePerl-5.24.3.2404-MSWin32-x64-404865

执行命令:


修改 configdata.pm makefile 文件,搜索 /MD  ,全部修改为 /MT 即,静态编译


perl configure VC-WIN32
nmake
nmake install


编译结果:
老版本的对应新版本的
libeay32.dll、ssleay32.dll 对应 libcrypto-1_1.dll、libssl-1_1.dll

具体要求,可自行查看 INSTALL 文件 和 NOTES.WIN 文件

以上是关于如何在 Windows 下编译 OpenSSL的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 下编译 OpenSSL

如何在 Windows 下编译 OpenSSL

如何在 Windows 下编译 OpenSSL

如何在 win7 下编译 openssl?

openssl-1.1.1-pre1 windows环境下编译

Windows XP SP3下编译安装openssl-1.1.0b