2012-03-28 1 views
1

Ich erhalte die folgenden Kompilierungsfehler, wenn ich boost/date_time/posix_time/posix_time.hpp in meinem C++ CodeÜbersetzungsfehler bei 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>’ 

bin denke ich, dass es nur das Gespräch einbeziehen Das verursacht das Problem. Ich habe den folgenden Code

 
#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 ; 
}; 

Ich benutze gcc-4.3.4 und Boost-x86_64 0: 1.39.0-9.el5 Bibliothek

Hat jemand eine Idee dazu hat?

Vielen Dank im Voraus

+0

post ein minimal vollständiges Beispiel, das das Problem demonstriert –

Antwort

0

In Bezug auf Ihre erste Frage: Haben Sie mit einer neueren Compiler versucht? gcc-4.3.4 ist positiv uralt ... Ich habe es mit gcc-4.4.6 und boost-1.46 versucht und diese Kombination funktioniert gut. Außerdem ist die von Ihnen gepostete Fehlermeldung nicht vollständig, es sieht so aus, als ob mindestens die Hälfte fehlt.

Zur zweiten Frage (die über Ihre CMakeLists.txt funktioniert nicht): Haben Sie es mit einem sauberen Binärbaum versucht? Wenn die zwischengespeicherte Version (Boost_ <XXX>_LIBRARY-Einträge in der CMakeCache.txt-Datei) nicht mit der Version in Ihrer CMakeLists.txt-Datei übereinstimmt, erhalten Sie diese Art von Fehlermeldung. Dies kann passieren, wenn Sie CMake ausgeführt haben, die alte Version gefunden haben und dann die VERSION-Anforderung hinzugefügt haben. In diesem Fall werden die zwischengespeicherten Einträge nicht gelöscht, und Sie haben ein Chaos.