Windowsでlibcurlを使う(MinGW)

libcurl (cURL)

さまざまなプロトコルを実装したライブラリ。MIT/X derivate license。
このライブラリを使うことでcurlコマンドラインユーティリティと同じことを
C言語等の自作プログラムから実現できる。

Linux(Ubuntu)で使用するには以下のようにインストールする。

$ sudo apt-get install libcurl3-dev

Windowsで利用するにはcURLのサイトにさまざまなバイナリイメージが置いてあり、これを利用するのが手っ取り早い。
例によりVisual C++(Visual Studio)では意味不明なエラーに悩まされるのでMinGWで使う。

準備

  • cURLのサイトからMinGW用のlibcurlバイナリをダウンロードする。現時点の最新は以下。
    Win32 - Generic
    Win32 2000/XP 	7.21.6 	libcurl 	SSL enabled 	  	Gunter Knauf 	3.05 MB
    http://www.gknw.net/mirror/curl/win32/curl-7.21.6-devel-mingw32.zip
  • ダウンロードしたファイルを適当な場所に展開する
    c:\work\curl-7.21.6-devel-mingw32
  • 展開後のファイルを以下のようにMinGW所定の場所にコピーする
    c:\work\curl-7.21.6-devel-mingw32\bin -> \MinGW\bin
    c:\work\curl-7.21.6-devel-mingw32\include -> \MinGW\include
    c:\work\curl-7.21.6-devel-mingw32\lib -> \MinGW\lib

これで準備完了。

自分のプログラムをlibcurlとリンクする

  • example codeはcURLのサイトにある
    http://curl.haxx.se/libcurl/c/example.html 
    $ gcc simple.c -lcurl -lcurldll
  • このプログラムは実行時にはプロトコルに応じて以下のDLLを必要とする
    libcurl.dll
    libidn-11.dll
    libssh2.dll
    etc.