使用boost::posix_time时发生编译错误
Compilation error when using boost::posix_time
当我在我的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<date_type,CharT,InItrT>::special_values_parser(boost::date_time::special_values_parser<date_type;CharT>)'/usr/include/boost/date_time/special_values_parser.hp:34:error:将'special_values.parser'的含义从'class boost::date_time::special_vvalues_parser<date_type,charT>'
我认为,这只是呼吁包括,这是造成问题的原因。我有以下代码
#包括"boost/date_time/posix_time/posix_time.hpp"ClassChrono{public:Chrono():_startTime(boost::posix_time::microc_clock::local_time()){;}void reset(){_startTime=boost::posix_time::microc_clock::local_time();}boost::posix_time::time_duration elapsed()const{return(boost::posix_time::microsc_clock::local_time()-startTime);}boost::posix_time::ptime_startTime;};
我使用gcc-4.3.4和boost x86_64 0:1.39.0-9.el5库
有人对此有想法吗?
提前感谢
关于你的第一个问题:你试过使用更新的编译器吗?gcc-4.3.4确实很古老。。。我尝试了gcc-4.4.6和boost-1.46,这种组合效果很好。此外,您发布的错误消息不完整,看起来至少有一半丢失了。
至于第二个问题(关于您的CMakeLists.txt不起作用的问题):您尝试过使用干净的二进制树吗?如果缓存的版本(CMakeCache.txt文件中的Boost_<XXX>_LIBRARY条目)与CMakeLists.txt文件中的版本不匹配,则会收到此类错误消息。如果你运行CMake,它找到了旧版本,然后你添加了version要求,就会发生这种情况。在这种情况下,缓存的条目不会被清除,最终会出现混乱。
相关文章:
- std::is_base_of表示ctor编译错误
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- 如何修复sfml c++代码编译错误
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- vscode下的Arduino代码出现意外编译错误
- 第三方 API 中的编译错误 - Visual Studio
- std::cout输出int时出现编译错误
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 提升图广度优先搜索前置编译错误
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 使用带有 ref 参数的成员函数创建线程时出现编译错误
- 我在C++中遇到了这个奇怪的编译错误
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- 使用 std::enable_if 限制派生类的模板参数时出现编译错误
- 现代OpenGL和GLEW Libraray的编译错误
- C++ 编译错误:意外的类型名称"字符串":预期的表达式
- C ++程序编译错误,找不到/访问文件
- 使用直接大括号初始化时,C++ 编译错误"声明末尾的预期";"
- 为什么传递非静态成员函数会导致编译错误?