cURL のコンパイル – OpenSSL編

6年ぶり位になりますが、Windows 上で、cURL をコンパイルしてみようかと思います。ただし今回は OpenSSL を 0.9.8ベースから 1.0.0ベースへ変更し、Visual C++ のランタイム・ライブラリ不要に変更しました。

条件

  • 全て静的コンパイル(Microsoft Windows の動的ライブラリ(DLL)不要)
  • libcurl と zlib は静的リンク、OpenSSL のみ動的リンク
  • OpenSSL 1.0.0系ベース

それでは、開始です。

 

» 必要なオープンソース

※バージョンは執筆時点のものでこれより新しいバージョンがリリースされている可能性があります。

 

» 必要なインタプリタ・コンパイラ・アセンブラ

Visual C++ は 2008 (VC++9.0) などの少し古いバージョンでも構いませんが、予め、以上のツールが動作するようにしておいてください。

でも、ビルド環境構築時間が無い人のために、一応6年前と同じく、ソースコードを何も改変せずにコンパイルした OSS のバイナリを連載の最後に添付しておきます。(ただし、今回これらは Visual C++ 2008 でコンパイルしたものとなります。)

 

» OpenSSL 1.0.0系のコンパイル

  1. openssl-1.0.0d.tar.gz を解凍する
  2. Visual C++ 用のコマンドプロンプトを開く
  3. 解凍したディレクトリへ移動し、以下のコマンドを実行。
    > perl Configure VC-WIN32 --prefix=c:\openssl
    > ms\do_nasm
  4. メモ帳などのテキスト エディタを利用して、 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
  5. コマンドプロンプトへ戻り、以下のコマンドを実行して、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 をコンパイルします。

 

関連するコンテンツ


コメントを残す


メモ - 以下の HTML タグと属性が利用できます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>