winxp下安装VC6和编译openssl1.0.1e(Release版附带zlib)

系统:
winxp sp2
版本
ActivePerl-5.16.0.1600
VC 6.0
openssl: 1.0.1e
MASM8.0
zlib-1.2.8

一、准备工作:安装vs2005运行库,用winrar解压缩MASMSetup.exe得到:setup.exe,继续用winrar解压缩setup.exe 得到:vc_masm1.cab

      继续用winrar解压缩vc_masm1.cab得到:FL_ml_exe__.....  (很长的文件名,省略),将这个文件重命名为ml.exe(安装vc2005运行库,否则ml.exe无法运行)

      测试得到的ml.exe , 应该显示: Microsoft (R) Macro Assembler Version 8.00.50727.104,拷贝ml.exe到“...\vc98\bin"目录。

二、总结Windows下openssl-1.0.1e的安装步骤
1、C:\Program Files\Microsoft Visual Studio\VC98\Bin>VCVARS32.BAT
2、C:\zlib-1.2.8>nmake -f win32\Makefile.msc
3、静态链接zlib:
c:/openssl-1.0.1e>perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0 --prefix=c:/openssl-1.0.1e zlib  --with-zlib-include=c:\zlib-1.2.8 --with-zlib-lib=c:\zlib-1.2.8\zlib.lib
or   动态链接zlib:
c:/openssl-1.0.1e>perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0 --prefix=c:/openssl-1.0.1e zlib- dynamic  --with-zlib-include=c:\zlib-1.2.8 --with-zlib-lib=c:\zlib-1.2.8\zdll.lib
4、c:/openssl-1.0.1e>ms\do_ms
5、c:/openssl-1.0.1e>nmake -f ms\ntdll.mak
6、c:/openssl-1.0.1e>nmake -f ms\ntdll.mak test 
7、c:/openssl-1.0.1e>nmake -f ms\ntdll.mak install  
8、c:/openssl-1.0.1e\bin>openssl -h

Q&A:
一、 NMAKE : fatal error U1077: 'ml' : return code '0x1'
当执行>nmake -f ms/ntdll.mak
出现错误:
Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
Building OpenSSL
        ml /nologo /Cp /coff /c /Cx /Fotmp32dll/sha512-586.obj tmp32dll/sha512-5
86.asm
 Assembling: tmp32dll/sha512-586.asm
MASM version 8.00 or later is strongly recommended.
error A4910: cannot open file: C:/masm32/bin/ml.err
tmp32dll/sha512-586.asm(97) : error A2008:  : mm
NMAKE : fatal error U1077: 'ml' : return code '0x1'
Stop.

解决方法:
MASM的版本过低, 我安装的MASM32中C:/masm32/bin>ml
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserv
版本是 6.14.8444,而错误提示中推荐8.00 or later ,所以只好下载MASM的高版本
MASM8.0可以从微软网站自由获取,地址如下:

http://www.microsoft.com/downloads/details.aspx?familyid=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=en

获取后,得到的是安装包MASMSetup.exe,没有装VC2005的话,无法安装,解决方法如下:

用winrar解压缩MASMSetup.exe得到:setup.exe

继续用winrar解压缩setup.exe 得到:vc_masm1.cab

继续用winrar解压缩vc_masm1.cab得到:FL_ml_exe__.....  (很长的文件名,省略),将这个文件重命名为ml.exe(安装vc2005运行库,否则ml.exe无法运行)

测试得到的ml.exe , 应该显示: Microsoft (R) Macro Assembler Version 8.00.50727.104

将生成的ml.exe拷贝到C:/masm32/bin目录下,将原来的ml.exe覆盖即可。

 

二、NMAKE : fatal error U1077: 'cl' : return code '0x2'
解决错误1后,重新nmake -f ms/ntdll.mak会出现这个错误
解决办法:
这个在openssl官方网站上找到了,方法是禁用IPV6
perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0
三、fatal error LNK1103: debugging information corrupt; recompile module
这个错误产生的原因是:
随着VC7/VC8中新的debug信息格式和一些安全检查机制的导入,在VC6上使用这些库的Debug版本的时候
就会产生如题的链接错误。具体而言,你可能在VC6上使用了XP SP2,Windows 2003或者Windows 2003 R2
版本的SDK。

解决办法:
1.用Release版编译,不过这样就没法调试了。 把ntdll.mak中
LFLAGS=/nologo /subsystem:console /opt:ref /debug ---> LFLAGS=/nologo /subsystem:console /opt:ref /release
MLFLAGS= /nologo /subsystem:console /opt:ref /debug /dll ---> MLFLAGS= /nologo /subsystem:console /opt:ref /release /dll
2.到Tool -> Options -> Directories(以VC6.0为例),将SDK的顺序放到最下边或者直接删掉较新SDK
   的Directories:包括Include files和Library files。
3.如果你必须使用SDK中的新特性,那么找一个2004年之前的SDK吧。
   这里是最后一版支持VC6的SDK的下载地址:
   http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
4.方便的话,干脆迁移到VC7/VC8。

   


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值