系统:
winxp sp2
版本
ActivePerl-5.16.0.1600
VC 6.0
openssl: 1.0.1e
MASM8.0
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
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 : 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.
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.
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可以从微软网站自由获取,地址如下:
MASM8.0可以从微软网站自由获取,地址如下:
获取后,得到的是安装包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
这个在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。 |