1. softgate

    Posted

    softgate
Changes in title
+VC++ 12 (VS2013) で OpenSSL をビルドしたメモ
Changes in tags
+openssl
1.0.1f
Changes in body
Source | HTML | Preview
@@ -0,0 +1,22 @@
+## 準備
+
+* [OpenSSL](http://www.openssl.org/) 1.0.1f のソースをダウンロードして展開
+* Win32 用 [nasm 2.11.02](http://www.nasm.us/) バイナリをダウンロードして展開
+* Perl は以前からインストールされていた [ActivePerl](http://www.activestate.com/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` でスタティックライブラリをビルド&インストール
+
+デフォルトでは、DLL は CRT に動的リンク、スタティックライブラリは CRT に静的リンクされるようなコード生成オプションになっている。したがって、DLL の方は、原則として実行時に VC++ ランタイムが必要。
+
+未確認だが、VC++ 11 以上でコンパイルする場合、XP でも動作するバイナリをビルドするには XP ツールセットを使った方が無難かもしれない(.mak ファイルの CFLAGS に `/D_USING_V110_SDK71_` を追加)。