我對提升非常非常新穎。據我瞭解,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