【问题标题】:Compilation error when using boost::posix_time使用 boost::posix_time 时的编译错误
【发布时间】:2012-04-12 01:04:03
【问题描述】:

当我在我的 c++ 代码中包含 boost/date_time/posix_time/posix_time.hpp 时出现以下编译错误

/usr/include/boost/date_time/date_facet.hpp:560: 错误: 'void boost::date_time::date_input_facet ::special_values_parser(boost::date_time::special_values_parser )' /usr/include/boost/date_time/special_values_parser.hpp:34:错误:将“special_values_parser”的含义从“class boost::date_time::special_values_parser ”更改

我认为这只是导致问题的包含调用。我有以下代码

#include "boost/date_time/posix_time/posix_time.hpp" 类计时{ 公共:计时():_startTime(升压::posix_time::微秒时钟::本地时间()){; } 无效重置() { _startTime = boost::posix_time::microsec_clock::local_time() ; } boost::posix_time::time_duration elapsed() const { 返回 (boost::posix_time::microsec_clock::local_time() - _startTime) ; } boost::posix_time::ptime _startTime ; };

我使用 gcc-4.3.4 和 boost x86_64 0:1.39.0-9.el5 库

有人对此有想法吗?

提前致谢

【问题讨论】:

  • 发布一个最低限度完整的示例来说明问题

标签: c++ boost compiler-errors


【解决方案1】:

关于您的第一个问题:您是否尝试过使用更新的编译器? gcc-4.3.4 确实很古老...我尝试使用 gcc-4.4.6 和 boost-1.46,这种组合效果很好。还有,你贴的错误信息不完整,好像少了一半。

关于第二个问题(关于您的 CMakeLists.txt 不起作用的问题):您是否尝试过使用干净的二叉树?如果缓存版本(CMakeCache.txt 文件中的 Boost__LIBRARY 条目)与您的 CMakeLists.txt 文件中的版本不匹配,您将收到此类错误消息。如果您运行 CMake,它找到了旧版本,然后您添加了 VERSION 要求,就会发生这种情况。在这种情况下,缓存的条目将不会被清除,最终会变得一团糟。

【讨论】:

    猜你喜欢
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多