天天看点

windows2000下openssl的安装

 我是因为老师让看这方面的资料,才想到要装openssl的,但是所给资料上不是在windows2000下安装的,所以只有在网上找自己需要的东西。但是网上的东西大体都是相似的,但对于初学者来说还是有一定的难度,抽象性太高,没有太明确的说法。这篇文章是我在openssl专业论坛上找到的,真的很好,我一次就调试通过,但还有一点需要补充,就是目录问题(导致我安装多次不成功的原因):

3中的openssl是直接解压到C盘根目录即可 点击运行,输入cmd进入命令行状态,进入openssl所在的路径,如:c:/openssl 1)和2)两条语句都需要在openssl目录下执行。其余无歧义。

作者:laodaoxu

    发表时间:2003-5-14 10:51:37 

     准备工作:

     1 安装vc6.0 路径为默认都为默认路径。

     2 下载 ActivePerl-5.8.0.806-MSWin32-x86 并安装

     3下载 openssl0.96i 解压到根目录下 。如c:

     (我开始下载的是最新的.97a,但最后编译时候n_pkey.c老是出问题的)

     开始安装:完全可以参照斑竹的文章或openssl目录下的install forw in32

     1) > perl Configure VC-WIN32

     : 如不成功会有明显提示

     2) > ms/do_ms

     : 推荐使用这种方式,我第一次成功编译就是在这种方式下

     :另外两种方式 如果使用也必须保证本机有编译器才能使用。

     : > ms/do_masm (默认vc 自带的编译器;也也以自己下载安装)

     : ms/do_nasm (需要自己下载)

     :

     3)转到C:/Program Files/Microsoft Visual Studio/VC98/bin目录(默认安装时)下

     执行 vcvars32.bat 以配置环境变量。

     4)跳到openssl目录下

     执行> nmake -f ms/ntdll.mak

     :如果编译成功,最后的输出都在out32dll目录下 : 包括可执行文件 、两个dll和两个lib文件。

     :

     备注:

     我自己是n次失败之后才最后成功的,下面是我几个主要犯错的地方。

     1)使用ms/do_masm (ms/do_nasm) 方式时,要保证环境变量path 包含的几种路径下有其可执行文件。

     否则就会出现 如下错误:

     Building OpenSSL

     ml /Cp /coff /c /Cx /Focrypto/md5/asm/m5_win32.obj ./crypto/md5/asm/m5_w

     in32.asm

     'ml' 不是内部或外部命令,也不是可运行的程序

     或批处理文件。

     NMAKE : fatal error U1077: 'ml' : return code '0x1'

     Stop.

     最简单的办法是将可执行文件拷贝到path指定的目录。

     不过用ms/do_ms就可以绕开这样的问题。我开始老是试着用ms/do_masm ,太折磨人。

     2)同一个解压包,如果最后编译没有成功的话,最好是再完全解压重来。

     尤其是你用不同的ms/do_(masm,nasm,ms)方式时.

     3)编译不成功时,一定要注意看看其最后的错误。

     我在编译过程中出现过:

     ./crypto/asn1/n_pkey.c(106) : error C2370: 'NETSCAPE_PKEY_it' : redefinition; di

     fferent storage class

     ./crypto/asn1/n_pkey.c(103) : see declaration of 'NETSCAPE_PKEY_it'

     NMAKE : fatal error U1077: 'cl' : return code '0x2'

     Stop.

     和

     Creating library out32dll/libeay32.lib and object out32dll/libeay32.exp

     md5_dgst.obj : error LNK2001: unresolved external symbol _md5_block_asm_host

     er

     sha1dgst.obj : error LNK2001: unresolved external symbol _sha1_block_asm_dat

     der

     sha1dgst.obj : error LNK2001: unresolved external symbol _sha1_block_asm_hos

     der

     rmd_dgst.obj : error LNK2001: unresolved external symbol _ripemd160_block_as

     st_order

     out32dll/libeay32.dll : fatal error LNK1120: 4 unresolved externals

     NMAKE : fatal error U1077: 'link' : return code '0x460'

     Stop.

     甚至是

     out of memory cann’t 。。。。。。。。等等

     用97a出现第一种错误,我自己看过它的源代码,没有找到重新定义的情况(可能是在其它的c文件里),我

     又下过97b 还是同样的问题,后来在其他的包里复制同名文件(大小相同的)都不行。最后我只好重新下载旧版本的包,最后编译才算通过。

继续阅读