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:函数“void __cdecl connect(void)”(?connect@@YAXXZ) 中引用的未解析外部符号“public: void __thiscall player::stop(void)”(?stop@player@@QAEXXZ)

我已经尝试了最新的 32 和 64 版本的 BoostPro 并按照本教程http://www.youtube.com/watch?v=5AmwIwedTCM.All but vs 仍然产生相同的错误...

VS2010项目设置include/lib路径 https://dl.dropbox.com/u/47585151/vs.png

但是当我打开

链接器->常规->显示进度->搜索库 (/VERBOSE:Lib)

我注意到 VS 只搜索在

链接器->输入->附加依赖

http://pastebin.com/BCpEt8Zq

是否可以在 vs2010 下检查 boost::bind 和 boost::function 需要哪个 .lib boost?

4

1 回答 1

1

这个问题与任何 boost 库都无关(两者都是 header-only)。尝试简单地从内部调用 startand你应该得到同样的错误。仔细阅读它,它会告诉你缺少什么。stopconnect

于 2012-10-04T09:01:22.593 回答