Boost编译问题



我是boost的新手。据我所知,boost::mutex同时具有成员lock()和unlock()。然而,我得到以下的错误信息关于他们后面的功能。我在源代码所在的文件夹中运行了"sudo apt-get install libboost-dev"命令。这也是我的教授给学生的代码。我确信它应该正确编译。任何帮助都太好了!

错误消息:

矩阵。cc:函数' void p_scalarproduct_t(int*, int*, int*, int, int, boost::mutex*) ':

矩阵。cc:75:错误:' class boost::mutex '没有名为' lock '的成员

矩阵。cc:77:错误:' class boost::mutex '没有名为' unlock '的成员

矩阵。cc:函数' int p_scalarproduct(int*, int*, int, int) ':

矩阵。cc:91:错误:' bind '不是' boost '的成员

代码:

void p_scalarproduct_t(int* c, int* a, int* b, 
                       int s, int e, boost::mutex* lock)
{ 
    int tmp;
    tmp = 0;
    for (int k = s; k < e; k++)
        tmp += a[k] * b[k];
    lock->lock();
    *c = *c + tmp;
    lock->unlock();
}

要锁定boost中的锁,需要将其传递给相关的scoped_lock,在本例中为boost::mutex::scoped_lock。因此,要锁定l_锁,执行以下命令:

boost::mutex::scoped_lock l(l_)

最新更新