2012-03-28 69 views
1

我得到以下編譯錯誤,當我包括我的C升壓/ DATE_TIME /了posix_time/posix_time.hpp ++代碼時編譯錯誤使用boost ::了posix_time

 
/usr/include/boost/date_time/date_facet.hpp:560: error: declaration of ‘void boost::date_time::date_input_facet <date_type, CharT, InItrT>::special_values_parser(boost::date_time::special_values_parser <date_type, charT>)’ 
/usr/include/boost/date_time/special_values_parser.hpp:34: error: changes meaning of ‘special_values_parser’ from ‘class boost::date_time::special_values_parser <date_type, charT>’ 

我認爲它只是調用包括這是造成這個問題的原因。我有以下代碼

 
#include "boost/date_time/posix_time/posix_time.hpp" 

class Chrono { 
    public: Chrono() : _startTime(boost::posix_time::microsec_clock::local_time()) { ; } 
    void reset() { _startTime = boost::posix_time::microsec_clock::local_time() ; }  
    boost::posix_time::time_duration elapsed() const { 
     return (boost::posix_time::microsec_clock::local_time() - _startTime) ; 
    } 
    boost::posix_time::ptime _startTime ; 
}; 

我使用gcc-4.3.4和升壓x86_64的0:1.39.0-9.el5庫

有沒有人有這個想法?

在此先感謝

+0

發佈微創完整的示例演示問題 – 2012-03-28 13:36:20

回答

0

關於您的第一個問題:您是否嘗試過更新的編譯器? GCC-4.3.4是積極的古...我嘗試用gcc-4.4.6和提高-1.46和這個組合工作得很好。此外,您發佈的錯誤消息還不完整,至少有一半錯過了。

至於第二個問題(一個關於你的CMakeLists.txt不工作):你有沒有試着用乾淨的二叉樹?如果緩存版本(BOOST_ <XXX> _LIBRARY在CMakeCache.txt文件項)不匹配您的CMakeLists.txt文件中的版本,你會得到這樣的錯誤信息。這可能發生,如果您運行CMake的,它找到了舊版本,然後您添加的版本要求。在這種情況下,高速緩存條目不會被清除,和你結束了一個爛攤子。