Boost error while compiling deal.II from git master

78 views
Skip to first unread message

Praveen C

unread,
Apr 21, 2017, 2:29:43 AM4/21/17
to Deal.II Googlegroup
Dear all

I am installing on Mac OS Sierra. All dependencies installed with homebrew.

I get this error

/Users/praveen/Applications/deal.II/git/include/deal.II/base/aligned_vector.h:863:31: error: 

      no member named 'make_array' in namespace 'boost::serialization'

    ar &boost::serialization::make_array(_data, vec_size);

        ~~~~~~~~~~~~~~~~~~~~~~^

Thanks

praveen

detailed.log

Wolfgang Bangerth

unread,
Apr 21, 2017, 11:16:15 AM4/21/17
to dea...@googlegroups.com
On 04/21/2017 12:29 AM, Praveen C wrote:
>
> I am installing on Mac OS Sierra. All dependencies installed with homebrew.
>
> I get this error
>
> */Users/praveen/Applications/deal.II/git/include/deal.II/base/aligned_vector.h:863:31:
> **error: *
>
> * no member named 'make_array' in namespace 'boost::serialization'*
>
> ar &boost::serialization::make_array(_data, vec_size);
>
> * ~~~~~~~~~~~~~~~~~~~~~~^*

Does this happen while compiling deal.II, or while compiling a user code?

I thought that what is missing is a
#include <boost/serialization/array.hpp>
at the top of that file, but it's actually there. You are using boost
1.64 -- is the make_array() function no longer in
boost/serialization/array.hpp for you?

Best
W,


--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/

Praveen C

unread,
Apr 21, 2017, 12:18:12 PM4/21/17
to Deal.II Googlegroup
This is while compiling deal.II

There is no make_array in that include file, see below.

Best
praveen

$ vi serialization/array.hpp 


#ifndef BOOST_SERIALIZATION_ARRAY_HPP

#define BOOST_SERIALIZATION_ARRAY_HPP


// (C) Copyright 2005 Matthias Troyer and Dave Abrahams

// Use, modification and distribution is subject to the Boost Software

// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

// http://www.boost.org/LICENSE_1_0.txt)


// for serialization of <array>. If <array> not supported by the standard

// library - this file becomes empty.  This is to avoid breaking backward

// compatibiliy for applications which used this header to support

// serialization of native arrays.  Code to serialize native arrays is

// now always include by default.  RR


#include <boost/config.hpp> // msvc 6.0 needs this for warning suppression


#if defined(BOOST_NO_STDC_NAMESPACE)


#include <iostream>

#include <cstddef> // std::size_t

namespace std{ 

    using ::size_t

} // namespace std

#endif


#ifndef BOOST_NO_CXX11_HDR_ARRAY


#include <array>

#include <boost/serialization/nvp.hpp>


namespace boost { namespace serialization {


template <class Archive, class T, std::size_t N>

void serialize(Archive& ar, std::array<T,N>& a, const unsigned int /* version */)

{

    ar & boost::serialization::make_nvp(

        "elems",

        *static_cast<T (*)[N]>(static_cast<void *>(a.data()))

    );


}

} } // end namespace boost::serialization


#endif // BOOST_NO_CXX11_HDR_ARRAY


#endif //BOOST_SERIALIZATION_ARRAY_HPP


--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Wolfgang Bangerth

unread,
Apr 21, 2017, 1:04:28 PM4/21/17
to dea...@googlegroups.com
On 04/21/2017 10:15 AM, Praveen C wrote:
> This is while compiling deal.II
>
> There is no make_array in that include file, see below.

Ah, how annoying. Did that function move to a different file? What
happens if you do
grep -r make_array serialization/*

Best
W.

Praveen C

unread,
Apr 22, 2017, 12:23:15 AM4/22/17
to Deal.II Googlegroup

Here is the output

$ grep -r make_array serialization/*

serialization/array_wrapper.hpp:    // make_array.  So I make make_array a friend

serialization/array_wrapper.hpp:    friend const boost::serialization::array_wrapper<Tx> make_array(Tx * t, S s);

serialization/array_wrapper.hpp:const array_wrapper< T > make_array(T* t, S s){

serialization/valarray.hpp:        ar << serialization::make_array<const U, collection_size_type>(

serialization/valarray.hpp:        ar >> serialization::make_array<U, collection_size_type>(

serialization/vector.hpp:        ar << serialization::make_array<const U, collection_size_type>(

serialization/vector.hpp:        ar >> serialization::make_array<U, collection_size_type>(


Praveen C

unread,
Apr 22, 2017, 4:57:19 AM4/22/17
to Deal.II Googlegroup
I compiled with bundled boost for now.

But I face another problem when compiling my own code.

$ make

Scanning dependencies of target hyflo

[ 10%] Building CXX object CMakeFiles/hyflo.dir/assemble.cc.o

In file included from /Users/praveen/Applications/hyflo/src/assemble.cc:3:

/Users/praveen/Applications/deal.II/git/install/include/deal.II/base/function_parser.h:31:10: fatal error: 

      'muParser.h' file not found

#include <muParser.h>

Thanks

praveen

Praveen C

unread,
Apr 22, 2017, 4:59:08 AM4/22/17
to Deal.II Googlegroup
Compiling step-33 also fails for me which uses function_parser.h

Thanks
praveen

Praveen C

unread,
Apr 22, 2017, 5:13:17 AM4/22/17
to Deal.II Googlegroup
My deal.II was configured to use bundled muparser but when I look in my deal.II installation, I dont see the muParser.h file.

Thanks
praveen
Reply all
Reply to author
Forward
0 new messages