それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

VisualStudio2008でlibcurlを使ってみる

VisualStudio 2008を使ってlibcurlを使うアプリを作って見ることにした。VisualStudioよくわかってないので、間違えてたらご指摘いただけると嬉しいです。

最初に libcurlの準備

wget http://curl.haxx.se/download/curl-7.25.0.tar.gz
tar zxvf curl*.tar.gz
cd curl(略
open ./lib/vclibcurl.vcproj

該当ディレクトリを開きvcprojを開く

(libcurl.vcprojファイルを開くと)

(変換ウィザードが出てくる。)
変換ウィザードをつかって2008用のファイルを作る

libcurlをビルドする。

vs2008のプロジェクト画面のプロパティを開いて設定をする
(Visual Studio_設定)

プロパティページで

スタティックライブラリ
(スタティックライブラリを選ぶ)

プリプロセッサ

(SnapCrab_libcurl プロパティ ページ_2012-4-27_19-46-0_No-00)

コンパイル時の設定で、プリプロセッサーに指定する。

次を追加する.

WIN32;_DEBUG;BUILDING_LIBCURL;HTTP_ONLY;CURL_STATICLIB;

(SnapCrab_プリプロセッサの定義_2012-4-27_19-46-16_No-00)

ビルド

ここまででビルドする。

今回は libcurl.lib(静的リンク用)を作っている。のでlibcurl.libがDebugに作られて出で来る。
(libcurl.lib)


ここまででlibcurlをコンパイルしてリンクする直前まで出来た。準備完了。

libcurlを使うプロジェクトを作る。

libcurlのlibファイルが出来たので、準備完了。ここから使う側のアプリを作る

(新規プロジェクトを作る)

Win32コンソールアプリをウィザードで作る

名前をつけて、保存する。ここで場所を指定する
(win32コンソールアプリを選ぶ)

作ったプロジェクトにlibcurlを突っ込む

指定した場所のディレクトリを開く(またはソリューション・エクスプローラーから開く)

エクスプローラーからディレクトリを作る
  • include ディレクトリを作る
  • lib ディレクトリを作る
作ったディレクトリにlibcurlをコピーしてくる

libcurlのソースコードから curl/include/* を PROJECT/include/* にコピーして作る
lib ディレクトリには、 curl/lib/Debug/libcurl.lib から PROJECT/lib/* にコピーしてくる。

(include,libを作ってlibcurlをコピー)

ソリューションを右クリックしてプロパティを開く

構成プロパティー
     → C/C++ 
          → プリプロセッサー

プリプロセッサの定義を変更する

     CURL_STATICLIB

を追加する。

( CURL_STATICLIBの追加)

コンパイル時のincludeにlibcurlを追加する

includeパスに作ったincludeパスを指定してlibcurlを追加する。

(追加のインクルードディレクトリをたどる)
(先ほどのinclude指定)


libcurl.libが使えるようにする。

『リンカ』を選択して、『 追加のライブラリディレクリ』を指定する。

( プロパティ ページ)(SnapCrab_追加のライブラリ ディレクトリ_2012-4-27_20-12-54_No-00)

(SnapCrab_test-curl-app プロパティ ページ_2012-4-27_20-15-31_No-00)

ビルドする

ソースを書いて、ビルドしたら終わりです。libcurlのeasy_init関連のサンプルをまずはコンパイルしてみましょう。

以上で完成です。


注意点

単体で動くlibを作るには、libssl libssh libcurlの全てをDLLを使わないマルチスレッド デバッグを選んでおく必要がある。
しかも

出来上がり。


参考資料通りにやったつもりでも、結構時間かかりますね。

でも、まぁこれでC言語のネットワークプログラミングは簡単にできてしまいますね。