Mac OS High Sierra Compile Error - no viable conversion from '__map_iterator<__tree_iterator

+1 vote


I followed the Mac OS compilation instructions but I cannot get pass the error below:

I ran the commands below successfully however I receive the error when performing the make command:

export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
./configure --with-gui=no --with-libs=no --with-miniupnpc=no


protocol/relay.cpp:1549:62: error: no viable conversion from '__map_iterator<__tree_iterator<__value_type<const mc_RelayRecordKey, [...]>,

      std::__1::__tree<std::__1::__value_type<const mc_RelayRecordKey, mc_RelayRecordValue>, std::__1::__map_value_compare<const

      mc_RelayRecordKey, std::__1::__value_type<const mc_RelayRecordKey, mc_RelayRecordValue>, std::__1::less<const mc_RelayRecordKey>,

      true>, std::__1::allocator<std::__1::__value_type<const mc_RelayRecordKey, mc_RelayRecordValue> > >::__node_pointer, [...]>>' to

      '__map_iterator<__tree_iterator<__value_type<mc_RelayRecordKey, [...]>, std::__1::__tree<std::__1::__value_type<mc_RelayRecordKey,

      mc_RelayRecordValue>, std::__1::__map_value_compare<mc_RelayRecordKey, std::__1::__value_type<mc_RelayRecordKey, mc_RelayRecordValue>,

      std::__1::less<mc_RelayRecordKey>, true>, std::__1::allocator<std::__1::__value_type<mc_RelayRecordKey, mc_RelayRecordValue> >

      >::__node_pointer, [...]>>'

    for(map<mc_RelayRecordKey,mc_RelayRecordValue>::iterator it = m_RelayRecords.begin(); it != m_RelayRecords.end();)



Any thoughts?

asked Jun 14, 2018 by Brianzinho
Thanks for reporting this. Which version of MultiChain are you trying to compile?
master-alpha 3
Thanks, the team are taking a look an I'll revert.

1 Answer

0 votes
Thanks for reporting this. We'll aim to fix it in the next alpha release of MultiChain 2.0. In the meantime perhaps you can run MultiChain for Linux inside Docker on Mac or in a cloud virtual machine?
answered Jul 11, 2018 by MultiChain
you mean  fix it in  alpha4?
Yes, we will try to do this.