1. xpsp3 vc6.0sp6 openssl1.0.1f
2. 安装activeperl 5.8 或更高版本
3. vc6需要添加环境变量(手动方式加入用户环境变量,如下)
名 include
值 C:\Program Files\Microsoft Visual Studio\VC98\atl\include;C:\Program Files\Microsoft Visual Studio\VC98\mfc\include;C:\Program Files\Microsoft Visual Studio\VC98\include
名 lib
值 C:\Program Files\Microsoft Visual Studio\VC98\mfc\lib;C:\Program Files\Microsoft Visual Studio\VC98\lib
名 MSDevDir
值 C:\Program Files\Microsoft Visual Studio\Common\MSDev98
名 path
值 C:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Program Files\Microsoft Visual Studio\VC98\bin
4. 拷贝ml.exe拷贝到VC6的bin目录下,否则会因为缺失该文件,引发"NMAKE : fatal error U1077: 'ml' : return code '0x1' Stop."错误。(ml.exe在2003ddk中有,或者在vs2005以上版本的vc\bin目录下也有)
5. 打开ntdll.mak,找到这一行
LFLAGS=/nologo /subsystem:console /opt:ref /debug
修改最后的debug为release
不改的话,会引发"fatal error LNK1103: debugging information corrupt; recompile module openssl link return code 0x44f"错误。(但这样改了之后,以后使用这个lib或dll写应用程序,debug会无法链接成功,提示"fatal error LNK1103: debugging information corrupt; recompile module" ,release无任何问题)
6. 把下面这段代码拷贝到apps\s_cb.c文件中#include后面即可(以为vc6中无in6_addr的声明,会无法编译)
struct in6_addr {
union {
u_char Byte[16];
u_short Word[8];
} u;
};
7. 准备工作做完,就可以使用控制台命令行来进行编译了
(1) cd c:\openssl-1.0.1f
(2) Perl Configure VC-WIN32
(3) ms\do_ms
(4) 编译动态库:
nmake -f ms\ntdll.mak
编译静态库:
nmake -f ms\nt.mak
(5) 测试动态库:
nmake -f ms\ntdll.mak test
测试静态库:
nmake -f ms\nt.mak test
(6) 安装动态库:(会生成c:\usr文件夹,.h .lib .dll都在里面,考出来,就能用了)
nmake -f ms\ntdll.mak install
安装静态库:
nmake -f ms\nt.mak install
参考资料
http://blog.csdn.net/gofishing/article/details/658203
http://hi.baidu.com/regdt32/item/645ce4b7f5cc6d9718469711
http://piao8163.blog.163.com/blog/static/96972478201221692110887/
http://blog.csdn.net/seaskying/article/details/9044281
http://hi.baidu.com/blueapple_c/item/073f33de83339be2785daa57
http://www.redicecn.com/html/C_C__/20090718/107.html