0

プログラムでバインドと関数を使用する必要がありますが、残念ながらvs2010ではプログラムをリンクできません。boost::bindドキュメントの次の例を使用しました

#include <boost\bind.hpp>
#include <boost\function.hpp>
#include <functional>

class button
{
 public:

 boost::function<void()> onClick;
};


class player
{
 public:

  void play();
  void stop();
};

button playButton, stopButton;player thePlayer;

void connect()
{
playButton.onClick = boost::bind(&player::play, &thePlayer);
stopButton.onClick = boost::bind(&player::stop, &thePlayer);
}


void main(int argc, char* argv[])
{
connect();
}

エラー1エラーLNK2019:未解決の外部シンボル "public:void __thiscall player :: stop(void)"(?stop @ player @@ QAEXXZ)関数 "void __cdecl connect(void)"(?connect @@ YAXXZ)で参照

BoostProの最新の32および64バージョンを試し、このチュートリアルhttp://www.youtube.com/watch?v=5AmwIwedTCMに従いました。vs以外はすべて同じエラーが発生します...

VS2010プロジェクト設定include/lib path https://dl.dropbox.com/u/47585151/vs.png

しかし、私がオンにしたとき

Linker-> General-> ShowProgress-> For Libraries Searched(/ VERBOSE:Lib)

VSがで定義されているこれらのライブラリのみを検索していることに気づきました

リンカ->入力->追加の依存関係

http://pastebin.com/BCpEt8Zq

vs2010でboost::bindとboost::functionに必要な.libブーストを確認することはできますか?

4

1 に答える 1

1

この問題は、ブースト ライブラリとは関係ありません (どちらもヘッダーのみです)。内部から単純にandを呼び出し てみると、同じエラーが発生するはずです。注意深く読んでください。何が欠けているかがわかります。startstopconnect

于 2012-10-04T09:01:22.593 に答える