C++
openssl

VC++ 12 (VS2013) で OpenSSL をビルドしたメモ

More than 3 years have passed since last update.


準備



  • OpenSSL 1.0.1f のソースをダウンロードして展開

  • Win32 用 nasm 2.11.02 バイナリをダウンロードして展開

  • Perl は以前からインストールされていた ActivePerl 5.16.2 を使用

  • nasm, Perl, VC++ にパスを通す

ここでは VS 2013 に含まれる VC++ 12 を使用した。


ビルド

OpenSSL のソースは D:\Temp\openssl-1.0.1f に展開されており、ビルド後に D:\Libraries\openssl にインストールすると仮定する。



  • D:\Temp\openssl-1.0.1f に移動


  • > perl Configure VC-WIN32 --prefix=D:/Libraries/openssl で Makefile を生成


  • > ms\do_nasm でアセンブリソースを生成


  • > nmake -f ms\ntdll.mak install で DLL をビルド&インストール


  • > nmake -f ms\nt.mak install でスタティックライブラリをビルド&インストール

テストを実行するならビルドターゲットを test にして > nmake -f ms\nt.mak test などとする。最後に passed all tests と表示されれば正常。

デフォルトでは、DLL は CRT に動的リンク、スタティックライブラリは CRT に静的リンクされるようなコード生成オプションになっている。したがって、DLL の方は、原則として実行時に VC++ ランタイムが必要。

未確認だが、VC++ 11 以上でコンパイルする場合、XP でも動作するバイナリをビルドするには XP ツールセットを使った方が無難かもしれない(.mak ファイルの CFLAGS に /D_USING_V110_SDK71_ を追加)。

デバッグ版をビルドする場合は

> perl Configure debug-VC-WIN32 --prefix=D:/Libraries/openssl

のようにする。