libtorrentとUPnPと時々Qt4

| コメント(0) | トラックバック(0)

以前から

  • Qt4
  • libtorrent
  • (Boost: libtorrentで必要)

を利用したアプリを作っていたのですが、今時のご家庭のネットワーク環境はUPnP対応BBルータによるNA(P)T環境が普通かと思いますのでUPnPは必須の機能となります。

しかし、公式ページからDLできる0.12.1は未だUPnPをサポートしていません。ソースもざっと読んでみたのですが、UPnPという単語は全くgrepにひっかからない状況です。とはいえ、FuturesにUPnPサポートと書いてあるのでどうやら使えることは使えるようです。

あ、Qt4とか書いていますが、実際この記事だと関係なかったりします。あしからず。これはまたいつか別のお話ということで。

で、どうするかというと、結果からいえばSVNから適当に最新のバージョンを持ってくれば大丈夫です。だめでした。

公式ページからたどれるところにSVNのリポジトリ情報が書いてあるのでとりあえずChageLogを覗きます。TrunkにあるChageLogによると0.13のリリースがあるようです。で、BranchesをみるとRC_0_13というのがあります。リリースっていうかRCなのな。

得てしてHeadであるTrunkからもってくると開発中だったりしてコンパイルできないことがあるので、今回はこのRC_0_13を持ってくることにします。僕の場合はeclipseがインストールされているのでここら辺の作業は全部eclipse上でやっています。

それから必要なのがBoostとかasioです。asioはBoostにも含まれていく予定だった気がしますが、現状は別のページだと思います。

まずBoostのインストール。

とりあえず僕はソースからビルドしてみました。

Boostの多くはテンプレートな感じなのでヘッダだけあればそのまま使えるにくいやつなのですが、いくつかの機能はコンパイルする必要があります。そして今回使いたい機能はそこに該当しちゃうのでしかたなくコンパイルすることにします。Boostのソース一式をゲットしてきます。あとbjamというビルドツールが必要なので、それも探して持ってきます。パスが通った場所に置いておきましょう。

あ、忘れていましたが、今回はVS2005がインストールされた環境を前提にしています。

Boostのアーカイブを適当な場所に展開します。とりあえず僕はC:\work\boostとかに。ここにproject-root.jamというファイルがあるということを前提に進めます。そのファイルの名前通り、ここがbjamでビルドされるプロジェクトのルートになります。

VS2005がインストールされている環境ならスタートメニュにVS2005用のコマンドプロンプトを開くためのショートカットが用意されていますので、そのショートカットからコマンドプロンプトを開きます。これでVS2005関係のパスやらなんやらが自動的に設定されます。

cd c:\work\boost
とかやってプロジェクトのルートへ移動します。で、ここで一発

bjam release debug link=static runtime-link=static install

とか叩いてエンター。これでライブラリ一式がビルドされた上、C:\Boostに必要なものがコピーされます。C:\work\boostはまだ消さないで。

次はlibtorrentのビルドをします。これも適当にC:\work\libtorrentとかに展開します。同じくproject-root.jamがここにあるということにします。それからBoostのルートからboost-build.jamというファイルをコピーしてきます。で、こんな感じに編集します。

BOOST_ROOT = c:\work\boost ;
boost-build c:\work\boost\tools\build\v2 ;

編集したら保存して同じようにVS用のコマンドプロンプトでこんなかんじ

cd c:\work\libtorrent
bjam release debug link=static runtime-link=static

これでlibtorrentのライブラリが完成します。時間はかかるので待ちましょう。

ちなみにこのオプションだとライブラリ自体をスタティックにかつ、ランタイムもスタティックになるのでそのほかのライブラリも同様であれば完全にスタティックな実行ファイルができるわけですね。

ところで、結局今回持ってきたバージョンのソースでもUPnPは動きませんでした。うわーん。

トラックバック(0)

トラックバックURL: http://d.kawataso.net/mt/mt-tb.cgi/399

コメントする

Taken

www.flickr.com
This is a Flickr badge showing public photos and videos from kawataso. Make your own badge here.
kawataso's items Go to kawataso's photostream

買っちまいなー!

このブログは...

DSC_3643

このブログは@kawatasoの写真、妄想、記録置き場になっていくかと思います。

それ以外の何かはここから / mail

@kawataso/Twitter

@kawataso/Twitter

    follow me on Twitter

    このブログ記事について

    このページは、かわたそが2008年4月 1日 14:54に書いたブログ記事です。

    ひとつ前のブログ記事は「ThinkPad X61を購入」です。

    次のブログ記事は「さて、新社会人でなくなってしまいました」です。

    最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。