`
dengbaoleng
  • 浏览: 1132877 次
文章分类
社区版块
存档分类
最新评论

在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://www.cnblogs.com/myopq/archive/2006/11/29/576245.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics