2011-08-28 21 views
7

Mam następujący kod:użyciu from_string z datą doładowania

#include <iostream> 
#include <string> 
#include <iomanip> 
#include <locale> 


#include <boost/date_time/gregorian/gregorian.hpp> 
#include <boost/date_time/gregorian/parsers.hpp> 

#include <boost/date_time/posix_time/posix_time.hpp> 
#include <boost/date_time/posix_time/posix_time_io.hpp> 

using namespace boost::posix_time; 
using namespace boost::gregorian; 


int main(int argc, char *argv[]) 
{ 
std::string ds("2011-01-02"); 
date dt(from_string(ds)); 
date_facet *f=new date_facet("%Y-%m-%d"); 

std::locale loc=std::locale(std::locale::classic(),f); 
std::cout.imbue(loc); 


    std::cout<<dt<<std::endl; 


    return 0; 

} 

i kiedy go skompilować, pojawia się następujący błąd:

/tmp/ccBWTFcx.o: In function `unsigned short boost::date_time::month_str_to_ushort<boost::gregorian::greg_month>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': 
    b.cpp:(.text._ZN5boost9date_time19month_str_to_ushortINS_9gregorian10greg_monthEEEtRKSs[unsigned short boost::date_time::month_str_to_ushort<boost::gregorian::greg_month>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)]+0x97): undefined reference to `boost::gregorian::greg_month::get_month_map_ptr()' 
    collect2: ld returned 1 exit status 

czy jest to kwestia biblioteki DLL?

+0

Tak, jest to kwestia link library. Czy łączyłeś się ze zwiększeniem statycznych bibliotek? –

+0

nie, nie miałem, właśnie zrobiłem i dostaję błąd, który mam wymieniony poniżej ... – itcplpl

Odpowiedz

8

doładowania DATE_TIME nie tylko nagłówka, trzeba połączyć go z linii poleceń, na przykład:

gcc myprogram.cpp -omyprogram -lboost_date_time 
+0

dzięki Autopulated, zrobiłem to, teraz dostaję ten błąd: błąd: 'locale' nie został zadeklarowany w tym zakresie jak to naprawić? – itcplpl

+0

@itcplpl Czy w ogóle zmieniłeś kod? – James

+0

Nie, właśnie skompilowałem to ponownie ... czy to działa, gdy kompilujesz? – itcplpl

Powiązane problemy