Error running "make" command when install Esys-Particle

Asked by Saad Haq

Hi All,
FYI I created a new VM with the proper distribution 20.04LTS. Everything compiled fine. Ubuntu 21.10 was using gcc 11.## not gcc 9.##. I suspect this was the issue.

##################

 I am trying to Install Esys -Particle on Ubuntu 21.10 (on VMware Virtual Machine )

I have followed the instructions at "https://answers.launchpad.net/esys-particle/+faq/3234"

I was able to progress all the way through part 3 without issue but failed at the "make" command giving me the following error(s) :

 .... error: static assertion failed: comparison object must be invocable as const
  770 | is_invocable_v<const _Compare&, const _Key&, const _Key&>

Any help or guidance is appreciated, Saad Haq

...THE FULL CONTEXT OF THE ERROR MESSAGE IS BELOW ...

[ 16%] Building CXX object Geometry/CMakeFiles/Geometry.dir/GougeBlock3D.cpp.o
In file included from /usr/include/c++/11/set:60,
                 from /home/shaq/src/ESyS-Particle/esys-particle-trunk/Geometry/CircularNeighbourTable.h:23,
                 from /home/shaq/src/ESyS-Particle/esys-particle-trunk/Geometry/GougeBlock3D.h:18,
                 from /home/shaq/src/ESyS-Particle/esys-particle-trunk/Geometry/GougeBlock3D.cpp:16:
/usr/include/c++/11/bits/stl_tree.h: In instantiation of ‘static const _Key& std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_S_key(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type) [with _Key = BasicInteraction; _Val = BasicInteraction; _KeyOfValue = std::_Identity<BasicInteraction>; _Compare = BILess; _Alloc = std::allocator<BasicInteraction>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type = const std::_Rb_tree_node<BasicInteraction>*]’:
/usr/include/c++/11/bits/stl_tree.h:2069:47: required from ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_unique_pos(const key_type&) [with _Key = BasicInteraction; _Val = BasicInteraction; _KeyOfValue = std::_Identity<BasicInteraction>; _Compare = BILess; _Alloc = std::allocator<BasicInteraction>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = BasicInteraction]’
/usr/include/c++/11/bits/stl_tree.h:2122:4: required from ‘std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with _Arg = BasicInteraction; _Key = BasicInteraction; _Val = BasicInteraction; _KeyOfValue = std::_Identity<BasicInteraction>; _Compare = BILess; _Alloc = std::allocator<BasicInteraction>]’
/usr/include/c++/11/bits/stl_set.h:521:25: required from ‘std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::value_type&&) [with _Key = BasicInteraction; _Compare = BILess; _Alloc = std::allocator<BasicInteraction>; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<BasicInteraction, BasicInteraction, std::_Identity<BasicInteraction>, BILess, std::allocator<BasicInteraction> >::const_iterator; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other = std::allocator<BasicInteraction>; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key> = __gnu_cxx::__alloc_traits<std::allocator<BasicInteraction>, BasicInteraction>::rebind<BasicInteraction>; typename _Alloc::value_type = BasicInteraction; std::set<_Key, _Compare, _Alloc>::value_type = BasicInteraction]’
/home/shaq/src/ESyS-Particle/esys-particle-trunk/Geometry/GougeBlock3D.cpp:719:36: required from here
/usr/include/c++/11/bits/stl_tree.h:770:15: error: static assertion failed: comparison object must be invocable as const
  770 | is_invocable_v<const _Compare&, const _Key&, const _Key&>,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/stl_tree.h:770:15: note: ‘std::is_invocable_v<const BILess&, const BasicInteraction&, const BasicInteraction&>’ evaluates to false
make[2]: *** [Geometry/CMakeFiles/Geometry.dir/build.make:329: Geometry/CMakeFiles/Geometry.dir/GougeBlock3D.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:765: Geometry/CMakeFiles/Geometry.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

Question information

Language:
English Edit question
Status:
Answered
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
SteffenAbe (s-abe) said :
#1

Should be fixed in 1227. Tested with gcc 11.2 on Debian bullseye.

Steffen

Can you help with this problem?

Provide an answer of your own, or ask Saad Haq for more information if necessary.

To post a message you must log in.