我想在Windows 8上建立和鏈接OpenSSL,我發現它確實令人生畏。我要指出,我知道下面的帖子64位Windows上的OpenSSL
- OpenSSL Windows x64 Compilation error
- How do you compile OpenSSL for x64?
- Building OpenSSL VC++ Static 64bit Libs
,但他們沒有解決我做什麼,真正需要知道的。所以我決定和大家分享我的經歷作爲一個新的職位!
首先,我可以成功地建立並在Win32的操作系統鏈接OpenSSL和它完美的作品。我知道Windows 8自帶WOW64。 「WOW64 is an x86 emulator that allows 32-bit Windows-based applications to run seamlessly on 64-bit Windows」,不過當我運行我的應用程序是內置在Windows 7 32位,我收到一個錯誤「程序無法啓動,因爲的libeay32.dll從計算機中缺少...」,而「的libeay32.dll 「」顯然存在,並沒有失蹤。
爲了避免註冊表中缺少的東西,我想在32位模式構建的OpenSSL在Windows 8構建成功完成,並且應用程序沒有錯誤正確鏈接。當我運行應用程序時,我又收到了同樣的錯誤信息。
然後我試圖建立其基於以下步驟64位模式;
set PATH=%PATH%;c:\perl\bin;c:\nasm;
call "c:\visual studio\2012\vc\vcvarsall.bat" x64
perl Configure VC-WIN64A no-shared no-idea
call ms\do_win64a
copy ms\libeay32.def ms\libeay64.def /Y
copy ms\ssleay32.def ms\ssleay64.def /Y
ssed -e s/out32/out64/g ms\ntdll.mak | ssed … > ms\ntdll-64.mak
ssed -e s/out32/out64/g ms\nt.mak | ssed … > ms\nt-64.mak
nmake -f ms\ntdll-64.mak
nmake -f ms\ntdll-64.mak test
nmake -f ms\ntdll-64.mak install
在這種情況下,我生成過程中收到了很多警告的大多是「數據轉換和數據丟失的可能性」,但它是建立和而「測試」失敗「安裝」生成的輸出。
現在,當我嘗試使用新的「libeay64.lib和ssleay64.lib」建立我在Visual Studio解決方案我收到數千差不多的錯誤說「無法解析的外部符號」
所以,如果可能的話,請回答以下問題;
- 爲什麼我無法在Windows 8(64位)上運行我的32位應用程序?
- 爲什麼在Windows 8上正確構建OpenSSL的(32位模式),還是 遇到同樣的錯誤?
- 在OpenSSL構建(64位模式),我做錯了什麼?
我使用OpenSSL的版本1.0.1e,的Visual Studio 2012和NASM 07年10月2日
感謝
謝謝,我使用** perl **和** nasm **編譯OpenSSL源文件。我試圖找到這樣的選項(**/WX **),但我不能。事實上,我不使用Visual Studio來構建OpenSSL庫。我是否正確地得到你的答案?對於第二部分,顯然它會被編譯,但是當我嘗試在Visual Studio中將它鏈接時,我收到上述錯誤。 – anonim 2013-03-26 07:57:52
在Makefile中查找/ WX。 – doptimusprime 2013-03-26 09:18:28