cURL のコンパイル – cURL編

OpenSSL と zlib を予めコンパイルしたので、いよいよ cURL本体のコンパイルに移ります。

zlib と OpenSSL のコンパイル方法については、以下のリンクにあります。

 

» cURL のコンパイル

  1. OpenSSL をコンパイルしたフォルダ内の out32dll の名前を out32に変更する
    • out32フォルダには本来、静的リンク用の libssl32.liblibeay32.lib が置かれているのですが、動的リンク用のライブラリをこれに代えます。すると、curl.exe は OpenSSL を静的リンクしたつもりになりますが、実際は DLL が必要なバージョンになります。
  2. curl-7.21.7.tar.gz を解凍する
  3. Visual C++ のコマンドプロンプトを開く
  4. zlib と OpenSSL をコンパイルしてあるディレクトリを環境変数で指定する。
    set ZLIB_PATH=G:\zlib-1.2.5
    set OPENSSL_PATH=G:\openssl-1.0.0d
  5. cURL を解凍したディレクトリへ移動し、以下のコマンドを実行する
    > nmake vc-ssl-zlib VC=vc10 RTLIBCFG=static
    • Visual C++ 2008 をお使いの場合は以下のようになります。
      > nmake vc-ssl-zlib VC=vc9 RTLIBCFG=static
  6. 以上で、srcフォルダの下に curl.exe が生成される。

 

コンパイル自体は簡単なのですが、今回のビルド条件

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

上記を満たすには Makefile の変更などが多少必要となりました。

cURL 自体は、コンパイル時に、RTLIBCFG=static と指定することで、curl.exe 自体を Visual C++ のランタイム不要でコンパイルできます。ただしそのためには、関係する OpenSSL と zlib も Visual C++ のランタイムが要らないようにコンパイルしておく必要があります。

 

» バイナリ

今回の成果を以下に置いておきますので、もし必要な方がいらっしゃいましたら、ダウンロードしてお使いください。
ソースコードの一切の改変、改竄が無く、オリジナルのライセンスの元に再配布されます。

 

•著作権

cURL

Copyright © 1996 – 2011, Daniel Stenberg, <daniel@haxx.se>.

OpenSSL

Copyright © 1995-1998 Eric Young (eay@cryptsoft.com) All rights reserved.
Copyright © 1998-2012 The OpenSSL Project. All rights reserved.

 

•ライセンス

cURL

MIT/X ライセンスです。詳細については、Copyright – License を参照してください。

OpenSSL

OpenSSL は著作権表示を見てもらっても分かるとおり、途中からチーム体制の開発に変わっています。そのためライセンスについては、BSD-style のライセンスと、OpenSSLライセンスDual ライセンスとなります。詳細については、License を参照してください。

配布物はオリジナルを改竄せずにコンパイルした バイナリ形式の OpenSSL です。ライセンスについては LICENSE ファイルを参照してください。(同梱もされています。)
なお、LICENSE を閲覧して同意しない、あるいは本サイトよりダウンロードした配布物に含まれる LICENSE ファイルを閲覧して同意しなかったとしても、本サイトよりダウンロードした OpenSSL のバイナリを使用した時点で、当該ライセンスに同意したものと見なします。

 

•ダウンロード

cURL

OpenSSL

 

この curl.exe は 1.0.0ベースの OpenSSL ライブラリでリンクしています。

 

関連するコンテンツ


コメントを残す


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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください