如何在Windows下编译OpenSSL

 

解压OpenSSL以后, 在其目录下可以发现有个INSTALL.W32文件,这个文件就是在windows下的安装说明。你可以用UltraEdit打开它。

1.安装perl,perl可以从http://www.activestate.com/ActivePerl下载。

2.安装编译器(任意一个都可以),我仅以Visual C++为例子。

    Visual C++
    Borland C
    GNU C (Cygwin or MinGW)

3.如果通过汇编的方式编译,需要安装汇编语言编译器。MASM NASM都可以。如果速度要求不高,可以不用汇编的方式编译,即不需要安装。MASM一般由VC++自带,Windows NT 4.0 DDK a和Windows 98 DDK也带有MASM。把XXXXXml.exe和XXXXXml.err文件,提取出来,命名为ml.exe和ml.err,并把他们放到PATH路径 中即可。

NASM可以免费获取,很多地方都可以下载到,如http://www.kernel.org/pub/software/devel/nasm/binaries/win32/

nasmw.exe文件也需要放到PATH路径中。

4.打开一个DOS窗口,输入:perl Configure VC-WIN32

5.如果使用MASM,接着输入:ms\do_masm

如果使用NASM,接着输入:ms\do_nasm

如果不使用汇编语言编译器,输入:ms\do_ms

6.在DOS窗口中接着输入:nmake -f ms\ntdll.mak

如果没有错误的话,编译就通过了,在out32dll目录下面就可以看到,生成的dll文件和可执行文件了。把他们放到,PATH环境变量对应的一个目录里就可以了。

 

 

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

编译后
在openssl解压目录下执行,完成编译后。输出的文件在out32dll里面,包括应用程序的可执行文件、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

于是成功。。。
(我下载的是openssl-0.9.8a版本)

 

准备工作:
1. 安装Visual C++ 6.0:
在安装VC6.0的时候直接注册了环境变量后面会省略一个步骤。
已经从OpenSSL0.9.7i开始支持VC2005了,所以安装2005也可以。
2. 安装Perl5:
在网上搜索一下ActivePerl For Windows,我们需要的是for win32 x86版本的ActivePerl,它是Windows环境下的PERL语言解释器,其中就包括Perl for Win32。
3. 下载并解压OpenSSL:
http://www.openssl.org/找一个源码包,目前0.9.8g是最新的版本了,下载到本地并且解压到一个目录下。
准备工作完成,开始编译。在OpenSSL源码包中有INSTALL、INSTALL.MacOS、INSTALL.NW、
INSTALL.OS2、INSTALL.VMS、INSTALL.W32、INSTALL.W64 和 INSTALL.WCE等文件,这些文件就是为不同的操作系统安装OpenSSL准备的,Win32环境下当然是学习INSTALL.W32这个文件,整个编译安装过程里面写的很清楚:
1. 控制台下进入OpenSSL文件夹,运行配置文件(run Configure):

> perl Configure VC-WIN32

2. build the Makefiles and optionally the assembly language files:

- If you are using MASM then run:

> ms\do_masm

- If you are using NASM then run:

> ms\do_nasm

- If you don't want to use the assembly language files at all then run:

> ms\do_ms

里面都说了,如果你不想用汇编语言文件,就用第三种咯。

3. 生成库文件:

> nmake -f ms\ntdll.mak

回车后就进入编译状态了,等待编译完成后,在OpenSSL目录下会多出几个文件夹,其中out32dll中得到链接库文件和可执行程序,inc32中是生成的头文件。这些库文件加上头文件就可以拿去用了。

4. 如何还想进行安装:

> nmake -f ms\ntdll.mak install

btw: 如果控制台说nmake不是命令,说明VC的环境变量没有注册。在VC安装目录下的\VC98\bin目录下执行:

> vcvars32.bat

这样环境变量就注册好了。再试试nmake吧。

posted @ 2009-05-15 16:24 Jeno 阅读(...) 评论(...) 编辑 收藏