Problems trying to run MultiChain on macOSX Catalina

+2 votes

I followed all the steps in the mac instructions, when I run the command "make" I get the following output (which repeats continuously):

Making all in src

  CXX      filters/multichaind_cold-watchdog.o

  CXX      json/multichaind_cold-json_spirit_writer.o

  CXX      community/libbitcoin_community_a-community.o

In file included from community/community.cpp:4:

In file included from ./community/community.h:9:

In file included from ./rpc/rpcutils.h:13:

In file included from ./rpc/rpcserver.h:11:

In file included from ./rpc/rpcprotocol.h:15:

In file included from /usr/local/include/boost/iostreams/stream.hpp:21:

In file included from /usr/local/include/boost/iostreams/stream_buffer.hpp:21:

In file included from /usr/local/include/boost/iostreams/detail/streambuf/direct_streambuf.hpp:24:

In file included from /usr/local/include/boost/iostreams/detail/functional.hpp:24:

In file included from /usr/local/include/boost/iostreams/close.hpp:18:

In file included from /usr/local/include/boost/iostreams/flush.hpp:17:

In file included from /usr/local/include/boost/iostreams/detail/dispatch.hpp:17:

In file included from /usr/local/include/boost/iostreams/traits.hpp:39:

In file included from /usr/local/include/boost/range/iterator_range.hpp:13:

In file included from /usr/local/include/boost/range/iterator_range_core.hpp:38:

In file included from /usr/local/include/boost/range/functions.hpp:20:

In file included from /usr/local/include/boost/range/size.hpp:21:

In file included from /usr/local/include/boost/range/size_type.hpp:20:

In file included from /usr/local/include/boost/range/concepts.hpp:19:

/usr/local/include/boost/concept_check.hpp:51:7: warning: unused typedef 'boost_concept_check51' [-Wunused-local-typedef]

      BOOST_CONCEPT_ASSERT((Model));

      ^

/usr/local/include/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT'

    BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)

    ^

/usr/local/include/boost/concept/detail/general.hpp:79:7: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN'

      BOOST_PP_CAT(boost_concept_check,__LINE__)             \

      ^

/usr/local/include/boost/preprocessor/cat.hpp:22:32: note: expanded from macro 'BOOST_PP_CAT'

#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)

                               ^

/usr/local/include/boost/preprocessor/cat.hpp:29:34: note: expanded from macro 'BOOST_PP_CAT_I'

#    define BOOST_PP_CAT_I(a, b) a ## b

                                 ^

<scratch space>:8:1: note: expanded from here

boost_concept_check51

 

 

 

Have I set this up incorrectly or is there any fix?

Thanks!

 

asked Jul 3, 2020 by GxFR
solved your issue?
Sadly not yet, do you have a similar problem?

1 Answer

+1 vote
This looks like you are using the wrong version of the Boost library, you need 1.57.
answered Jul 3, 2020 by MultiChain
I double checked and reinstalled boost@1.57, but I keep receiving the same errors. Any idea what else it could be? As I've been trying to get this running for the last couple days but I'm not having any luck.
OK, well looking at the error again, it's just a warning, so why do you think it is actually preventing compilation?
I'm new to all of this as you can probably tell, but when I run the 'make' command it runs indefinitely and has a similar output to above unless thats supposed to happen? I can send a longer version of the output if needed?
How long is indefinitely?
I left it for about 10 minutes this time and this is the final error it gives:

clang: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]
ld: warning: direct access in function 'void boost::throw_exception<boost::bad_function_call>(boost::bad_function_call const&)' from file 'multichain/cli-multichain-cli.o' to global weak symbol 'typeinfo for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_function_call> >' from file '/usr/local/lib/libboost_program_options-mt.a(cmdline.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_function_call> >::rethrow() const' from file 'multichain/cli-multichain-cli.o' to global weak symbol 'typeinfo for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_function_call> >' from file '/usr/local/lib/libboost_program_options-mt.a(cmdline.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'virtual thunk to boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_function_call> >::rethrow() const' from file 'multichain/cli-multichain-cli.o' to global weak symbol 'typeinfo for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_function_call> >' from file '/usr/local/lib/libboost_program_options-mt.a(cmdline.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'void boost::throw_exception<boost::lock_error>(boost::lock_error const&)' from file 'multichain/cli-multichain-cli.o' to global weak symbol 'typeinfo for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >' from file '/usr/local/lib/libboost_thread-mt.a(thread.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >::rethrow() const' from file 'multichain/cli-multichain-cli.o' to global weak symbol 'typeinfo for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >' from file '/usr/local/lib/libboost_thread-mt.a(thread.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'virtual thunk to boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >::rethrow() const' from file 'multichain/cli-multichain-cli.o' to global weak symbol 'typeinfo for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >' from file '/usr/local/lib/libboost_thread-mt.a(thread.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'void boost::throw_exception<boost::thread_resource_error>(boost::thread_resource_error const&)' from file 'multichain/cli-multichain-cli.o' to global weak symbol 'typeinfo for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error> >' from file '/usr/local/lib/libboost_thread-mt.a(thread.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error> >::rethrow() const' from file 'multichain/cli-multichain-cli.o' to global weak symbol 'typeinfo for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error> >' from file '/usr/local/lib/libboost_thread-mt.a(thread.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'virtual thunk to boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error> >::rethrow() const' from file 'multichain/cli-multichain-cli.o' to global weak symbol 'typeinfo for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error> >' from file '/usr/local/lib/libboost_thread-mt.a(thread.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'boost::exception_ptr boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_alloc_>()' from file 'libbitcoin_util.a(libbitcoin_util_a-util.o)' to global weak symbol 'guard variable for boost::exception_ptr boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_alloc_>()::ep' from file '/usr/local/lib/libboost_thread-mt.a(thread.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.

make[1]: Nothing to be done for `all-am'.
OK, we can't tell from that whether it compiled successfully or not, because there only appear to be warnings (which can be ignored). But you should certainly expect it to take longer than 10 minutes in any event. Was there a multichaind program created at the end of the process?
I decided to start a fresh install, when I run the command “brew install autoconf automake berkeley-db4 libtool boost@1.57 pkg-config rename python@2 nasm”
 it displays:
==> Deleted Formulae
python ✔                                                             cargo-completion

Error: No available formula with the name "python@2"
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

I believe, since it couldn’t install Python@2 it did not install any of the other dependencies, so I installed them all one by one, however I still get the same error as above saying there is no formula called Python@2. Is this a problem or can I install Python@3?
You probably do need Python 2 rather than 3, since the two language versions have quite a few incompatibilities. We hope to soon take a look at compiling MultiChain on OS X 10.15. Unfortunately unlike all the other platforms we work with, many OS X upgrades seem to break something.
...