« boost::thread でコンパイルエラー C2666 | トップページ | 戦略変更を考えたほうがいいかもしれない »

2010年7月19日 (月)

boost::threadをあきらめようか

先ほど書いた日記の続きです。

ここにあるとおりに future.hpp を直してみたのですが、それでプロジェクトをビルドするとこんなエラーが出るようになりました。

エラー 5 error LNK2022: メタデータの操作に失敗しました (8013119F) : 対応する TypeDef を含んでいなければならないところ、含んでいない TypeRef が存在します: (dummy): (0x01000019)。 Device.obj

おそらく、ヘッダファイルを変更したのにboostライブラリのビルド済みライブラリファイルが昔のままなので、「同じ名前でも定義が矛盾している」と、リンカに怒られたのだと思います。それならライブラリもビルドしなおせばいいと思ったのですが、boostライブラリ自体のビルド方法がわかりません。さて困った。

余談ですが、boostは基本的にはヘッダファイルのみでできているみたいですね。それでも、ヘッダファイルだけでは収まりきらない11のライブラリは bjamというツールを使ってビルドするみたいです。

ということで、bjamの使い方をググって見ました。ありますね。まだ諦めるには早そうです。

« boost::thread でコンパイルエラー C2666 | トップページ | 戦略変更を考えたほうがいいかもしれない »

コメント

CのライブラリをPInvokeで、C#からコールするっていう手もありますよ(C++のライブラリはコールするのは至難の業ですが)。
boostをC#から呼ぶのは無理だと思いますが。
勉強のためならよいですね~。あ、VS2010 C++ Expressを入れてみるとか>boost

かみやんさん、お久しぶりです!

昨年の開発資産を使いまわす意味でもC#のほうがいいんじゃないかという意見もあります。でも、「boostを使ってみたかった」とか、「DP-SLAMのサンプルソースコードがC++」とか、「URGLibがC/C++」とか、いろんな理由があって今年度はC++で作ることにしました。

そのせいで開発が間に合わなかったら本末転倒ですねcrying

やー、C#の方が開発効率よいから、C#の方がよいような。クラッシュしたときとか、メモリリークとかも含め。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/167990/48919997

この記事へのトラックバック一覧です: boost::threadをあきらめようか:

« boost::thread でコンパイルエラー C2666 | トップページ | 戦略変更を考えたほうがいいかもしれない »

最近の写真