天天看點

VS2008下OpenSSL編譯配置

           網上有很多的VS2008下編譯OpenSSL的文章,他們都寫出了編譯的基本步驟,但都忽略了一些重要問題,導緻編譯不成功。在這裡我主要說明一下怎樣解決編譯過程中遇到的問題。

    首先下載下傳ActivePerl,下載下傳最新版本(現在是最新),檔案名為ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi。安裝。

    下載下傳OpenSSL,我用最新版本1.0.1編譯沒成功,是以我就用了大家都推薦的版本0.9.8r。解壓到C槽根目錄下。

    接下來是下載下傳Microsoft Visual C++ 2008 Redistributable,該軟體有些人需要安裝。

    在指令視窗中(cmd進入),輸入:CD C:\OpenSSl-0.9.8r,進入OpenSSL-0.9.8r目錄,讓後輸入:perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0,回車。此處添加“-DOPENSSL_USE_IPV6=0”是用來禁用IPV6,防止報ml.exe的“0x01”錯誤。着這裡,沒必要輸入“--prefix=c:/openssl”,因為現在已經在該目錄下,很多文章不論三七二十一,都把這句加上,導緻很多不必要的錯誤。

    接着輸入ms\do_ms,生成makefile檔案。

    接着輸入CD C:\Program Files\Microsoft Visual Studio 9.0\VC\bin,回車。輸入vcvars32.bat,回車運作。此處為注冊環境變量,其他地方肯定這點也說了。

    接下來就是輸入:CD C:\OpenSSl-0.9.8r,再次進入OpenSSL-0.9.8r目錄,輸入:nmake -f ms\ntdll.mak,編譯動态庫。編譯要花幾分鐘的時間,請耐心等待。如果出現找不到ml.exe(VS2008一般不會),就去下載下傳masm,安裝這個軟體,在bin裡面找到ml.exe和ml.err,複制到C:\Program Files\Microsoft Visual Studio 9.0\VC\bin下面。

    編譯完成後,輸入nmake -f ms\ntdll.mak test,進行測試,若測試成功,最後輸出“pass all tests”,則編譯成功。

    最後輸入nmake -f ms\ntdll.mak install,安裝。O了。