2012-04-29 37 views
6

Đoạn mã sau cung cấp lỗi biên dịch với g ++ - 4.7.0 nhưng biên dịch tốt với g ++ - 4.6.boost :: date_time, g ++ - 4.7.0, biên dịch lỗi

#include <iostream> 
#include <boost/date_time/local_time/local_time.hpp> 
using namespace std; 
int main(){ 
    boost::posix_time::ptime time_t_epoch(boost::gregorian::date(1970,1,1)); 
    cout << time_t_epoch << endl; 
    return 0; 
} 

Sau đây là thông báo lỗi được lặp đi lặp lại nhìn thấy (biên dịch kết quả đầu ra rất nhiều tin nhắn)

/usr/include/boost/date_time/local_time/local_date_time.hpp:433:84: error: use of deleted function boost::shared_ptr<boost::date_time::time_zone_base<boost::posix_time::ptime, char> >::shared_ptr(const boost::shared_ptr<boost::date_time::time_zone_base<boost::posix_time::ptime, char> >&) 

Tôi đang sử dụng Ubuntu 12.04 và libboost-date-time1.46.1.

Mọi đề xuất?

+0

Bạn đang sử dụng cùng một phiên bản tăng trong cả hai trường hợp? – juanchopanza

+0

Có. Tôi không thấy bất kỳ phiên bản nào khác của thư viện tăng cường được cài đặt trên máy của tôi. Btw, nó là một lỗi biên dịch phải không? Vậy phiên bản thư viện có quan trọng ở đây không? – suresh

+0

Đây là lỗi biên dịch. Tôi không thể tái tạo nó, nhưng tăng của tôi không được xây dựng với C++ 11. Dường như của bạn là (constructor delete là C++ 11), vì vậy tôi đoán boost được xây dựng khác nhau trên ubuntu mới nhất. Bạn đã tự xây dựng nó hay sử dụng 'get-apt install'? – juanchopanza

Trả lời

6

Sự cố đã được giải quyết bằng cách cài đặt boost-1.48

+2

tốt để nghe điều đó, bây giờ tôi biết khi tôi nâng cấp. Bạn được phép chấp nhận câu trả lời của riêng bạn (nhưng bạn không nhận được bất kỳ điểm đại diện nào :-)) – juanchopanza

+0

tương tự đối với tôi, nhưng tôi đã sử dụng MacOS và gcc47 (thông qua MacPorts). Cập nhật từ tăng 1,44 lên 1,51. – chahuistle

Các vấn đề liên quan