在Windows下使用汇编方式编译OpenSSL方法

1. 安装perl,perl可以从http://www.activestate.com/ActivePerl下载。
2. 安装编译器(任意一个都可以),我仅以Visual C++.net2003为例子。
    Visual C++
     Borland C
     GNU C (Cygwin or MinGW)
3. 使用汇编方式编译时,需要安装汇编语言编译器。MASM,NASM都可以。如果速度要求
不高,可以不用汇编的方式编译,即不需要安装。MASM一般由VC++自带,Windows NT 4.0
DDK 和Windows 98 DDK也带有MASM。(经过自己测试这个自带编译器的行不通),需要下载MASM重新安装(下载网址:
http://www.x86asm.com/DisplayArticle.asp?BoardID=8&ArticleID=63)安装时一路默认即可。
安装成功后在其安装目录的bin文件夹下找到ml.exe和ml.err两个文件并将其拷贝之
Syetem32目录下;此时还不要高兴的太早!使用MASM编译时会出现如下问题:
 Assembling: .\crypto\sha\asm\sha512-sse2.asm .\crypto\sha\asm\sha512-sse2.asm(29) : error
 A2006: undefined symbol : XMMWORD。
这个问题很棘手,网上说是.\crypto\perlasm\x86ms.pl中对masm的版本定义不对,并且利用
OpenSSL给出的一个补丁也不能解决,我的解决办法是使用NASM编译。
在上述步骤的基础上下载NASM的编译器(地址:http://www.kernel.org/pub/software/devel/nasm/binaries/win32/)我下载的版本是nasm-0.98.39-win32.zip,下载成功后解压缩将其文件中的nasmw.exe和ndisasmw.exe也拷贝之System32目录下,这样编译环境就建好了,下面按步骤开始编译程序:
a.   从开始-->Microsoft Visual Studio .NET 2003-->Visual Studio .NET 工具-->Visual Studio .NET 2003 命令提示进入命令行,因为从这里进去后,和C++相关的环境变量都已经设置好了
b. 转换到OpenSSL目录,比如:E:\openssl-0.9.8g
c. 输入:perl Configure VC-WIN32
d. 输入:ms\do_nasm
e. 输入:nmake -f ms\ntdll.mak
       如果没有错误的话,编译就通过了,在out32dll目录下面就可以看到,生成的dll文件和可执行文件了。
下面几个网址可以借鉴,但都不能正确编译出来:
http://blogger.org.cn/blog/more.asp?name=OpenSSL&id=18972
http://blog.csdn.net/spacetiller/archive/2007/12/04/1916536.aspx
http://www.cnblogs.com/myopq/archive/2006/11/29/576245.html


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rabbit729/archive/2008/06/03/2506514.aspx

你可能感兴趣的:(在Windows下使用汇编方式编译OpenSSL方法)