私は Windows 8 で OpenSSL をビルドしてリンクしようとしていますが、非常に困難であることがわかりました。私は次の投稿を認識していることに言及する必要があります
しかし、私が本当に知る必要があることを扱ったものはありませんでした。そのため、新しい投稿として私の経験を皆さんと共有することにしました!
まず、Win32 OS 上で OpenSSL を正常にビルドおよびリンクでき、完全に機能します。Windows 8にはWOW64が付属していることを知っています。「<a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa384249%28v=vs.85%29.aspx" rel="nofollow noreferrer">WOW64 は x86 エミュレーターです。これにより、32 ビットの Windows ベースのアプリケーションを 64 ビットの Windows でシームレスに実行できます。 libeay32.dll がコンピューターにありません…</strong>」というメッセージが表示されますが、「<strong>libeay32.dll」は明らかにそこにあり、見つからないわけではありません。
レジストリの欠落を回避するために、Windows 8 で 32 ビット モードで OpenSSL をビルドしようとしました。ビルドは正常に完了し、アプリはエラーなしで正しくリンクされました。再びアプリを実行すると、同じエラー メッセージが表示されました。
そして、次の手順に基づいて 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
この場合、ビルド中に主に「データ変換とデータ損失の可能性」に関する多くの警告を受け取りましたが、ビルドされ、「<strong>テスト」が失敗したときに「<strong>インストール」が出力を生成しました。
新しい「<strong>libeay64.lib および ssleay64.lib」を使用して Visual Studio でソリューションをビルドしようとすると、「未解決の外部シンボル」というエラーがほぼ何千も表示されます</p>
可能であれば、次の質問に答えてください。
- Windows 8 (64 ビット) で 32 ビット アプリを実行できないのはなぜですか?
- Windows 8 で OpenSSL (32 ビット モード) を正しく構築したにもかかわらず、同じエラーが発生するのはなぜですか?
- OpenSSL ビルド (64 ビット モード) では、何か問題がありますか?
OpenSSL ver 1.0.1e、Visual Studio 2012、nasm 2.10.07を使用しています。
ありがとう