6年ぶり位になりますが、Windows 上で、cURL をコンパイルしてみようかと思います。ただし今回は OpenSSL を 0.9.8ベースから 1.0.0ベースへ変更し、Visual C++ のランタイム・ライブラリ不要に変更しました。
条件
- 全て静的コンパイル(Microsoft Windows の動的ライブラリ(DLL)不要)
- libcurl と zlib は静的リンク、OpenSSL のみ動的リンク
- OpenSSL 1.0.0系ベース
それでは、開始です。
» 必要なオープンソース
※バージョンは執筆時点のものでこれより新しいバージョンがリリースされている可能性があります。
» 必要なインタプリタ・コンパイラ・アセンブラ
- Perl
- Visual C++ 2010 Express
- NASM 2.10rc8
Visual C++ は 2008 (VC++9.0) などの少し古いバージョンでも構いませんが、予め、以上のツールが動作するようにしておいてください。
でも、ビルド環境構築時間が無い人のために、一応6年前と同じく、ソースコードを何も改変せずにコンパイルした OSS のバイナリを連載の最後に添付しておきます。(ただし、今回これらは Visual C++ 2008 でコンパイルしたものとなります。)
» OpenSSL 1.0.0系のコンパイル
- openssl-1.0.0d.tar.gz を解凍する
- Visual C++ 用のコマンドプロンプトを開く
- 解凍したディレクトリへ移動し、以下のコマンドを実行。
> perl Configure VC-WIN32 --prefix=c:\openssl > ms\do_nasm
- メモ帳などのテキスト エディタを利用して、 ms\ntdll.mak の 20 行目 の /MD を /MTに変更する
CFLAG= /MT /Ox /O2 /Ob2 -DOPENSSL_THREADS -DDSO_WIN32 -W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM -DOPENSSL_USE_APPLINK -I. -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE
- コマンドプロンプトへ戻り、以下のコマンドを実行して、OpenSSL 1.0.0d を make する。最後の1行は正しく make できたかのテスト用。
> nmake -f ms\ntdll.mak > nmake -f ms\ntdll.mak test
以上で、out32dll というフォルダの中に、静的コンパイルされた libeay32.dll と ssleay32.dll が作成されます。/MT オプションに変更したことにより、これらの DLL は Visual C++ のライブラリを必要としません。
» バイナリ
上記の方法でコンパイルした OpenSSL for Windows は、このページからダウンロードできます。
次回は、zlib をコンパイルします。
関連するコンテンツ
- cURL のコンパイル – zlib編
- cURL のコンパイル – cURL編
- OpenSSL for Windows
- N-07D プリインアプリの無効化
- PPTP を Cent OS 5.x にインストールする ~N-06C の VPN 事情
コメントを残す