2013-11-21 160 views
3

我有一個使用VS2010開發的應用程序,它使用Boost.Thread 1.48。boost :: mutex :: timed_lock不在Linux上

目前我試圖將應用程序移植到Linux上(在Debian 7上運行)。

當我試着使用GCC 4.6或鐺編譯它,我收到以下錯誤

error: ‘class boost::mutex’ has no member named ‘timed_lock’ 

是否有任何預處理器定義或編譯器標誌我必須設置?

編輯: 好的,我發現了這個問題。我用下面的:

myfile.h:

boost::mutex myMutex; 

MYFILE.CPP

if(myMutex.timed_lock(boost::posix_time::millisec(10000))) 
{ 
    // Do stuff 
    // ... 
    // ... 

    myMutex.unlock(); 
    return true; 
} 

myMutex.unlock(); 
return false; 

這正常工作與VS2008/2010。 在Linux下,我不得不標題更改爲:

boost::timed_mutex myMutex; 

我還不太清楚,有什麼原因。

+0

你在Debian中使用了哪些增強版本? –

+0

我已經從零開始構建了Boost 1.48,並指向包含dir和lib目錄。 – Simon

回答

相關問題