openssl编译 win764 |vs2010|vc6.0
初次使用openssl,编译过程一波三折,下面分享一下我编译的过程。
我先后采用vs2010和vc6.0编译了三个版本,两个release版本和一个debug版本,这两个版本具体区别这里就不说了,大家可以到网上搜一下。整个过程我分三个阶段来说。
第一阶段:初识
我使用的openssl版本是最新的openssl-1.0.2a,可以从www.openssl.org下载。我的电脑装的是win7 64位系统,下载安装Perl5http://www.activestate.com/activeperl/downloads/,VC6.0.设置好相应的环境变量(很重要)。在openssl-1.0.2a下有install.win32和install.win64文件(要仔细看这两个文件),根据不同系统和不同编译器有不同的命令。
首先运行cmd命令进入windows命令行,进入Perl安装目录,运行Perl example.pl测试perl是否安装成功。测试成功后,进入VC安装目录,运行VCVARRS32.bat命令。然后进入openssl所在目录运行Perl Configure VC-WIN64A命令,接着执行ms\do_win64a命令此过程出现ml错误提示,我从网上下载了ml64.EXE,成功。
然后运行nmake -f ms\ntdll.mak 命令出现nmake:fatal error:'cl' return 0x2,还有大多是源码错误,原因是VC编译器不识别long long类型,将longlong类型改为_win64类型。接着执行仍出现错误NMAKE : fatal error U1077: 'cl.exe' : return code: '0x80' ...于是 ,安装失败了。
第二阶段:热恋
第一次安装失败后,我问了别人,都说VC6.0 编译器太老了,我又从网上查了很多资料,发现好多vs2010的,于是我又下载安装了vs2010,按顺序执行如下命令
在vs2010安装目录下的VCVARS64.bat,
perl Configure VC-WIN64A
ms\do_win64a
nmake -f ms\ntdll.mak
编译成功了,openssl-1.0.2a文件夹下的outdll32下生成了一堆文件,最重要的是libeay32.lib和ssleay.lib两个库,于是我在vs2010环境加入了这写了一个例子,结果运行的时候仍然报错,然后我用depens工具打开生成的.dll文件,发现所有的.DLL文件都打不开。于是第二次vs2010编译又失败了。。
第三阶段 小别
经过前两次失败,我都快崩溃了,过了两天我从别人那里拷贝了两个库文件,运行openssl命令行工具也成功了,找了几个例子运行也成功了。但我还是纳闷为什么编译通过还是不能用。我决定在编译一次,这此在编译之前仔细看了前面说的两个安装文件install.win32和install.win64文件,而 64位机器是兼容32位程序的,于是我重新下载了安装了vc6.0,按照install.win32里的说明依次运行
perl Configure no-asm VC-WIN32 --prefix="存储路径"
ms\do_ms
nmake -f ms\ntdll.mak
出现错误:在\openssl\apps\s_cb.c中use of undefined type 'in6_addr'
打开s_cb.c文件,把下列代码拷到apps\s_cb.c文件中#include后面即可
struct in6_addr {
union {
u_char Byte[16];
u_short Word[8];
} u;
};
nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak inst
成功!
默认是release版本,debug版本只需将第一条命令修改为:
perl Configure no-asm debug-VC-WIN32 --prefix="存储路径"
成功!
最后补充一点 win7下VC6.0 安装问题,win7下安装vc6.0后会出现打开文件程序崩溃的问题,解决方法:
下载Filetool.dll到vc6.0安装目录下的common\msDev98\AddIns文件夹下,打开菜单--工具--定制--附加项和宏文件,找到FileTool developer stdio add-in打钩,如没有此项,点击浏览找到filetool.dll添加上即可。然后vc界面上会出现两个按钮,替换掉原来的打开文件菜单项即可。

浙公网安备 33010602011771号