2017-06-14 40 views
5

basic boost vector exampleをコンパイルできません。 私はWindows 10を使用していますが、nuwen MinGW distroバージョン15.0を使用しています。gitは含まれていません。このバージョンにはGCC 7.10とBoost 1.64が含まれています。私はMinGwを解凍してファイルシステムのルートに配置し、MinGWの使用方法Aに従って、set_distro_paths.batを実行しています。エラー: 'make_array'は 'boost :: serializationのメンバーではありません

ベクトル-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 

出力:残念ながら

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 

以下は私のシステム上に構築するために失敗しているコードは、ありますこれらのエラーはいずれも私のコード内で発生しているのではなく、ブーストl内のインクルードファイル内のファイルその自己を習得する。プログラムをコンパイルできるように、アプリケーションレベルのコードやMakefileにどのような変更を加えることができますか?

+0

どのようにしてブーストをインストールしましたか? –

答えて

6

はいこれは、ubasヘッダーの問題です。私は前にそれに遭遇した。その前に

#include <boost/serialization/array_wrapper.hpp> 

を含めることで回避できます。私はそれをポストコードの保守者に報告することを検討したい。

+0

これは動作します!しかし、vectorのインクルードの前にarray_wrapperのインクルードを置くときだけです。 – user1509669

+0

その2017とまだ修正? – Knowledge

+2

@Knowledge 6月の2017年も、あなたの情報のためです。 – sehe

関連する問題