cURLビルドメモ
ver.7.25.0をソースからビルドを行う。
WindowsやSolaris、Mac OS Xのビルド済のものはあるのだが、一部バージョンが古かったりするので、ソースから行う。
cURLは、様々なビルド構成が選択できる。
・デバッグ版、リリース版
・DLLビルド、スタティックビルド
・SSLなし、あり
・zlibなし、あり
・sshなし、あり
・OpenSSLにするか、SSPIにするか(Windowsのみ)
Windowsの場合、VC6.0用のプロジェクトをアップグレードして、Visual Studio 2010のIDEからビルドすることもできるが、さまざまなビルドオプションが指定でき、バッチビルドが行えるコンソールビルドを行った。
<Makefileの変更点(私の場合)> [ Makefile ] # modified by mizoguchi # vc6 -> vc10 VC=vc10 [ lib\Makefile.vc10 ] # modified by mizoguchi # OpenSSLのライブラリ構成を見ながら、適切なインクルードパスに変更(int32 -> include)(環境依存) CFLAGSSSL = /DUSE_SSLEAY /I "$(OPENSSL_PATH)/include" /I "$(OPENSSL_PATH)/include/openssl" # OpenSSLのライブラリ構成を見ながら、ライブラリのパスを適切に設定(環境依存) SSLLIBS = $(OPENSSL_PATH)/lib/libeay32.lib $(OPENSSL_PATH)/lib/ssleay32.lib
そして各種ライブラリのパスを指定するために、以下のようなバッチファイルを作成。
(私の場合はOpenSSLを採用しSSPIは使用しなかったが、参考のために掲載しておく)
[ build_vc10.bat ] set ZLIB_PATH=C:\Users\mizop\git_repository\GameServer\library\zlib\Windows set OPENSSL_PATH=C:\Users\mizop\git_repository\GameServer\library\OpenSSL set WINDOWS_SDK_PATH="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A"
以下に、Visual Studio 2010で、全ビルドをバッチ実行する手順を記載する。
[ビルド手順] (1)Visual Studio 2010のコマンドプロンプトを立ち上げる (2)cURLのルートフォルダにcd (3)上記で作成した build_vc10.bat を実行 (4)「nmake vc-all」と打つ ==> vcの全ビルド、つまり以下が実行される nmake -f Makefile.$(VC) cfg=release nmake -f Makefile.$(VC) cfg=release-ssl nmake -f Makefile.$(VC) cfg=release-zlib nmake -f Makefile.$(VC) cfg=release-ssl-zlib nmake -f Makefile.$(VC) cfg=release-ssl-dll nmake -f Makefile.$(VC) cfg=release-zlib-dll nmake -f Makefile.$(VC) cfg=release-ssl-dll-zlib-dll nmake -f Makefile.$(VC) cfg=release-dll nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll nmake -f Makefile.$(VC) cfg=release-dll-zlib-dll nmake -f Makefile.$(VC) cfg=release-dll-ssl-dll-zlib-dll nmake -f Makefile.$(VC) cfg=debug nmake -f Makefile.$(VC) cfg=debug-ssl nmake -f Makefile.$(VC) cfg=debug-zlib nmake -f Makefile.$(VC) cfg=debug-ssl-zlib nmake -f Makefile.$(VC) cfg=debug-ssl-dll nmake -f Makefile.$(VC) cfg=debug-zlib-dll nmake -f Makefile.$(VC) cfg=debug-ssl-dll-zlib-dll nmake -f Makefile.$(VC) cfg=debug-dll nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll nmake -f Makefile.$(VC) cfg=debug-dll-zlib-dll nmake -f Makefile.$(VC) cfg=debug-dll-ssl-dll-zlib-dll 私は実験のためにすべてをビルドしたが、もちろん自分に必要なビルドだけ行うのでもよい。
私はcURLを利用するアプリケーションがcURLのDLLを利用しているため、最終的に「debug-dll-ssl-dll」ビルドを採用した。ここでひとつ注意点だが、 ==> cURLをdllビルドした場合は、ビルドコンフィグの名前から類推できるように、OpenSSLやZlibなどもDLLビルドされていなければならない。OpenSSLなどがスタティックビルドされていると、アプリケーションがうまく立ち上がらなかった(私は数時間ハマり)。
またもし、cURLを利用するアプリケーションがスタティックビルドのライブラリを利用する場合は、#include
ちなみに、cURLのビルドのために用意したOpenSSLライブラリは、始め自分でビルドしたものを採用していたが、最終的には「http://slproweb.com/products/Win32OpenSSL.html」にある「Win32OpenSSL-1_0_1c.exe」との相性が良かったので、これを利用させてもらってビルドを行った。