我想我已经疯了,我正在尝试编译一个简单的项目来理解如何使用io_service并且我无法编译它。
#include <iostream>
#include <boost/asio.hpp>
#include <boost/bind.hpp>
class testClass
{
unsigned int other_number;
unsigned int main_number;
boost::asio::io_service& io_serv;
public:
testClass(boost::asio::io_service& io) : other_number(0), io_serv(io), main_number(0){io_serv.post(boost::bind(&testClass::printNumbers, this));}
void changeNumber(int num)
{
io_serv.post(boost::bind(&testClass::doChangeNumber, this, num));
}
private:
void doChangeNumber(int num)
{
main_number = num;
}
void printNumbers()
{
std::cout<<"Main number is: "<<main_number<<" Other number is:"<<other_number<<std::endl;
other_number++;
Sleep(1000);
io_serv.post(boost::bind(&testClass::printNumbers, this));
}
};
void main()
{
boost::asio::io_service io_serv;
testClass tc(io_serv);
io_serv.run();
int num = 0;
while (true)
{
tc.changeNumber(num++);
Sleep(2000);
}
}
我添加了“project property-&gt; c / c ++ - &gt; general-&gt;其他包含目录”行:"C:\Program Files (x86)\boost_1_44_0";
我确实添加了“project property-&gt; linker-&gt;其他库目录”行:"C:\Program Files (x86)\boost_1_44_0\libs";
但似乎没有任何工作......
我正在使用visual studio 2010 ..
boost_1_44_0 \ libs中没有.lib文件...我从boost网站下载了2次以确保..
无论我做什么,我总是得到LINK : fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_44.lib'
答案 0 :(得分:2)
您可以在本地系统using bjam as described here上构建Boost库(第5.2节)。完成后,您应该很高兴 - 从Visual Studio命令提示符中使用它,并确保您的项目具有正确的LIB路径。
如果您使用Boost Pro Computing的安装程序,默认情况下,预建的库只会在那里。