Ошибка компиляции при использовании boost :: posix_time - PullRequest
1 голос
/ 28 марта 2012

Я получаю следующую ошибку компиляции, когда я добавляю boost / date_time / posix_time / posix_time.hpp в мой код C ++

/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 и boost x86_64 0: 1.39.0-9.el5 library

У кого-нибудь есть идеи по этому поводу?

Заранее спасибо

1 Ответ

0 голосов
/ 15 апреля 2012

Относительно вашего первого вопроса: пробовали ли вы использовать более свежий компилятор? gcc-4.3.4 положительно древний ... я пробовал с gcc-4.4.6 и boost-1.46, и эта комбинация работает отлично. Кроме того, сообщение об ошибке, которое вы опубликовали, не является полным, похоже, что по крайней мере половина его отсутствует.

Что касается второго вопроса (тот, который не работает с вашим CMakeLists.txt): вы пробовали использовать чистое двоичное дерево? Если кэшированная версия (записи Boost_ _LIBRARY в файле CMakeCache.txt) не соответствует версии в файле CMakeLists.txt, вы получите сообщение об ошибке такого типа. Это может произойти, если вы запустили CMake, он нашел старую версию, а затем вы добавили требование VERSION. В этом случае кэшированные записи не будут удалены, и вы получите беспорядок.

...