2012-03-28 145 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的,它找到了旧版本,然后您添加的版本要求。在这种情况下,高速缓存条目不会被清除,和你结束了一个烂摊子。