我对提升非常非常新颖。据我了解,boost :: mutex同时拥有lock()和unlock()两个成员。但是,我收到以下关于它们后面的函数的错误消息。我在同一个文件夹的源代码中运行了'sudo apt-get install libboost-dev'命令。这也是我授予学生的教授代码。我确信它应该编译正确。任何帮助将是伟大的!提升编译问题
错误消息:
matrix.cc: In function ‘
void p_scalarproduct_t(int*, int*, int*, int, int, boost::mutex*)
’:matrix.cc:75: error: ‘
class boost::mutex
’ has no member named ‘lock
’matrix.cc:77: error: ‘
class boost::mutex
’ has no member named ‘unlock
’matrix.cc: In function ‘
int p_scalarproduct(int*, int*, int, int)
’:matrix.cc:91: error: ‘
bind
’ is not a member of ‘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? (检查'boost/version.hpp'找出) – ildjarn 2011-04-22 22:35:33
它说1.34,但我知道这不是最新版本。我怎么能更新这个? – tpar44 2011-04-22 22:51:33
@ tpar44:有问题; boost.thread在1.35从头开始被重写。您可以参考[适用于您的版本的文档](http://www.boost.org/doc/libs/1_34_1/libs/thread/doc/index.html),或者您可以[从当前版本的升级版本源(http://www.boost.org/doc/libs/release/more/getting_started/unix-variants.html)。 – ildjarn 2011-04-22 22:55:39