尝试使用boost :: asio时链接错误

时间:2010-11-03 15:48:38

标签: visual-studio visual-studio-2010 boost boost-asio linker-errors

我想我已经疯了,我正在尝试编译一个简单的项目来理解如何使用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'

1 个答案:

答案 0 :(得分:2)

您可以在本地系统using bjam as described here上构建Boost库(第5.2节)。完成后,您应该很高兴 - 从Visual Studio命令提示符中使用它,并确保您的项目具有正确的LIB路径。

如果您使用Boost Pro Computing的安装程序,默认情况下,预建的库只会在那里。