(x86 ビルドについてはこちらを参照)
準備
- OpenSSL 1.0.2 のソースをダウンロードして展開
- Perl は以前からインストールされていた ActivePerl 5.16.2 を使用
- Perl, VC++ の x64 コンパイラ等にパスを通す
ここでは VS 2013 に含まれる VC++ 12 を使用した。
ビルド
OpenSSL のソースは D:\Temp\openssl-1.0.2
に展開されており、ビルド後に D:\Libraries\openssl64
にインストールすると仮定する。
-
D:\Temp\openssl-1.0.2
に移動 -
> perl Configure VC-WIN64A --prefix=D:/Libraries/openssl64
で Makefile を生成 -
> ms\do_win64a
でアセンブリソースと Makefile を生成 -
> nmake -f ms\ntdll.mak install
で DLL をビルド&インストール - もしくは
> nmake -f ms\nt.mak install
でスタティックライブラリをビルド&インストール
テストを実行するなら DLL ビルド後に
> cd out32dll
> ..\ms\test
もしくは、スタティックライブラリビルド後に
> cd out32
> ..\ms\test
として、最後に passed all tests と表示されれば正常(だと思う)。
ちなみに、上の例だと、インストール時に D:/Libraries/openssl64/lib
へ libeay32.lib と ssleay32.lib がコピーされる。
これらのファイルは DLL ビルドの時はインポートライブラリ、スタティックライブラリの時はスタティックライブラリ自身を意味しており、DLL とスタティックライブラリを両方インストールすると後でインストールしたものによって以前のファイルが上書きされることに注意。
なお、デバッグ版をビルドする場合は
> perl Configure debug-VC-WIN64A --prefix=D:/Libraries/openssl64
のようにして Configure スクリプトを実行すれば良い。