2017-06-14 30 views
5

Tôi không thể biên dịch số basic boost vector example. Tôi đang sử dụng Windows 10 và tôi đang sử dụng phiên bản nuwen MinGW distro 15.0, không bao gồm git. Phiên bản này chứa GCC 7.10 và Boost 1.64. Tôi đã giải nén MinGw và đặt nó vào thư mục gốc của hệ thống tệp của tôi và tôi đang làm theo hướng dẫn sử dụng MinGW A để chạy set_distro_paths.bat. Dưới đây là mã, mà là thất bại trong việc xây dựng trên hệ thống của tôi:lỗi: 'make_array' không phải là thành viên của 'boost :: serialization

vector fail.cpp:

#include <boost/numeric/ublas/vector.hpp> 
#include <boost/numeric/ublas/io.hpp> 

int main() { 
    using namespace boost::numeric::ublas; 
    vector<double> v (3); 
    for (unsigned i = 0; i < v.size(); ++ i) 
     v (i) = i; 
    std::cout << v << std::endl; 
} 

Makefile:

vector-fail: vector-fail.o 
    g++ vector-fail.o -o vector-fail 
vector-fail.o: vector-fail.cpp 
    g++ -c vector-fail.cpp -o vector-fail.o 

Output:

g++ -c vector-fail.cpp -o vector-fail.o 
In file included from C:\MinGW\include/boost/numeric/ublas/vector.hpp:21:0, 
       from vector-fail.cpp:1: 
C:\MinGW\include/boost/numeric/ublas/storage.hpp: In member function 'void 
boost::numeric::ublas::unbounded_array<T, ALLOC>::serialize(Archive&, unsigned int)': 
C:\MinGW\include/boost/numeric/ublas/storage.hpp:299:33: error: 'make_array' is not a member of 'boost::serialization' 
       ar & serialization::make_array(data_, s); 
            ^~~~~~~~~~ 
C:\MinGW\include/boost/numeric/ublas/storage.hpp:299:33: note: suggested alternative: 'make_nvp' 
      ar & serialization::make_array(data_, s); 
           ^~~~~~~~~~ 
          make_nvp 
C:\MinGW\include/boost/numeric/ublas/storage.hpp: In member function 'void boost::numeric::ublas::bounded_array<T, N, ALLOC>::serialize(Archive&, unsigned int)': 
C:\MinGW\include/boost/numeric/ublas/storage.hpp:494:33: error: 'make_array' is not a member of 'boost::serialization' 
      ar & serialization::make_array(data_, s); 
           ^~~~~~~~~~ 
C:\MinGW\include/boost/numeric/ublas/storage.hpp:494:33: note: suggested alternative: 'make_nvp' 
      ar & serialization::make_array(data_, s); 
           ^~~~~~~~~~ 
           make_nvp 
make: *** [Makefile:5: vector-fail.o] Error 1 

Thật không may không có lỗi nào trong số các lỗi này xảy ra trong mã của tôi, thay vào đó chúng được gây ra bởi các tệp bên trong bao gồm các tệp trong vòng tăng ibrary tự của nó. Những thay đổi nào có thể được thực hiện trong mã mức ứng dụng hoặc Makefile để cho phép chương trình biên dịch?

+0

Bạn đã cài đặt tăng như thế nào? –

Trả lời

6

Có vấn đề với tiêu đề ublas. Tôi chạy vào nó trước đây. Bạn có thể giải quyết vấn đề này bằng cách bao gồm

#include <boost/serialization/array_wrapper.hpp> 

trước điểm đó. Tôi sẽ xem xét báo cáo nó cho người duy trì mã ublas.

+0

Công trình này hoạt động! Nhưng chỉ khi bạn đưa vào mảng include_wrapper trước khi đưa vào vector. – user1509669

+0

năm 2017 và vẫn không khắc phục được? – Knowledge

+2

@Knowledge Đó cũng là 2017 vào tháng 6, để biết thông tin của bạn. – sehe

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