天天看點

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 還是同樣的問題,後來在其他的包裡複制同名檔案(大小相同的)都不行。最後我隻好重新下載下傳舊版本的包,最後編譯才算通過。

繼續閱讀