我是因為老師讓看這方面的資料,才想到要裝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 還是同樣的問題,後來在其他的包裡複制同名檔案(大小相同的)都不行。最後我隻好重新下載下傳舊版本的包,最後編譯才算通過。