[aspect-devel] compile error on MAC OSX

Wolfgang Bangerth bangerth at math.tamu.edu
Thu Jul 3 15:13:19 PDT 2014


>>    "void dealii::DoFTools::extract_boundary_dofs<dealii::DoFHandler<2, 2>
>>> (dealii::DoFHandler<2, 2> const&, dealii::ComponentMask const&,
>> dealii::IndexSet&, std::__1::set<unsigned char, std::__1::less<unsigned
>> char>, std::__1::allocator<unsigned char> > const&)", referenced from:
>>        aspect::Simulator<2>::FreeSurfaceHandler::make_constraints() in
>
> It might be that deal.II was compiled with a different standard
> library (the ::__1::set looks suspicious), but I am not sure.

That's not the problem (std::__1 is simply the namespace in which Apple 
chooses to implement their standard library, following by something like
   namespace std { using namespace __1; }

The real problem is that we do not explicitly instantiate this function:

   template <class DH>
   void
   extract_boundary_dofs (const DH                      &dof_handler,
                          const ComponentMask       &component_mask,
                          IndexSet             &selected_dofs,
                          const std::set<types::boundary_id> &boundary_ids)

in dof_tools.inst.in. Magali's compiler decides simply not to export the 
implicit instantiation from the shared library. We need to add an explicit 
instantiation to the .inst.in file to make this work reliably.

I'm not in a position right now to make this change and test it until Monday, 
but if someone wants to try it I'm not going to object :-)

Cheers
  W.


-- 
------------------------------------------------------------------------
Wolfgang Bangerth               email:            bangerth at math.tamu.edu
                                 www: http://www.math.tamu.edu/~bangerth/



More information about the Aspect-devel mailing list