<p>Those instructions appear to be several years old, notwithstanding the date at the top of the page.  They are very obsolete and not helpful for the present day.  </p>

<ul>
<li><p>It's based on Ubuntu 14.04, which dates from 2014.</p></li>
<li><p>It is telling you to build version 0.10.0 of Bitcoin Core, which was released in February 2015 and won't work well with the current network.  Moreover it seems to be incompatible with modern compilers, hence the errors you are seeing.</p></li>
<li><p>They want you to build Berkeley DB from source, which is pointless.  There are perfectly good packages in Ubuntu.</p></li>
</ul>

<p>You can find up-to-date build instructions in the source tree at <code>doc/build-unix.md</code>, or read them online at <a href="https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md" rel="nofollow noreferrer">https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md</a>.  However before doing anything else you'll want to <code>git checkout v0.15.1</code> so that you are looking at the current version (as of this writing).</p>

<p>(By the way you shouldn't need to <code>sudo</code> make.  It's safer to do that as an unprivileged user.)</p>

CC BY-SA 3.0
2017-11-13T00:22:49.437Z
2017-11-13T02:12:27.927Z
2017-11-13T02:12:27.927Z
Nate Eldredge
<p>The Bitcoin core build documentation is a bit convoluted. The easiest way to build is to use the provided dependency make script rather than trying to install the dependencies individually.</p>

<p>In your case it looks like maybe you've got the wrong version of Boost or maybe your gcc version is too old. Either way I'd recommend starting from scratch and use these steps:</p>

<pre><code>$ sudo apt update
$ sudo apt upgrade
$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3 curl
$ sudo git clone https://github.com/bitcoin/bitcoin.git
$ chown -R your_username:your_username /usr/src/bitcoin
$ cd bitcoin/depends
$ make
$ cd ..
$ ./autogen.sh
$ CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure --prefix=/
$ make
$ sudo make install
</code></pre>

CC BY-SA 3.0
2018-04-01T21:37:36.497Z
Please update in 2018, so that it works for new comer.
YumYumYum
CC BY-SA 3.0
2017-11-13T00:16:23.073Z
2018-04-02T20:58:25.673Z
2018-04-02T20:58:25.673Z
sipsorcery
<p><strong>
I am trying to build bitcoin core from source using <code>Ubuntu 17.04</code> with this guide: <a href="http://bitzuma.com/posts/compile-bitcoin-core-from-source-on-ubuntu/" rel="nofollow noreferrer">http://bitzuma.com/posts/compile-bitcoin-core-from-source-on-ubuntu/</a>
</strong></p>

<p>The build fails when I use <code>sudo make</code>. </p>

<h2>The Error is:</h2>

<pre><code>Making all in src
make[1]: Entering directory '/home/oscar/src/bitcoin/src'
make[2]: Entering directory '/home/oscar/src/bitcoin/src'
  CXX      crypto/libbitcoinconsensus_la-sha1.lo
  CXX      crypto/libbitcoinconsensus_la-sha256.lo
  CXX      crypto/libbitcoinconsensus_la-sha512.lo
  CXX      crypto/libbitcoinconsensus_la-ripemd160.lo
  CXX      script/libbitcoinconsensus_la-bitcoinconsensus.lo
  CXXLD    libbitcoinconsensus.la
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
  CXX      bitcoind-bitcoind.o
  CXX      libbitcoin_server_a-addrman.o
  CXX      libbitcoin_server_a-alert.o
  CXX      libbitcoin_server_a-checkpoints.o
  CXX      libbitcoin_server_a-init.o
  CXX      libbitcoin_server_a-leveldbwrapper.o
  CXX      libbitcoin_server_a-main.o
  CXX      libbitcoin_server_a-miner.o
miner.cpp: In function ‘CBlockTemplate* CreateNewBlock(const CScript&amp;)’:
miner.cpp:94:5: warning: ‘template&lt;class&gt; class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
     auto_ptr&lt;CBlockTemplate&gt; pblocktemplate(new CBlockTemplate());
     ^~~~~~~~
In file included from /usr/include/c++/6/memory:81:0,
                 from /usr/include/boost/unordered/unordered_map_fwd.hpp:14,
                 from /usr/include/boost/unordered/unordered_map.hpp:17,
                 from /usr/include/boost/unordered_map.hpp:17,
                 from coins.h:18,
                 from main.h:16,
                 from miner.cpp:12:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template&lt;typename&gt; class auto_ptr;
                            ^~~~~~~~
miner.cpp: In function ‘void BitcoinMiner(CWallet*)’:
miner.cpp:469:13: warning: ‘template&lt;class&gt; class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
             auto_ptr&lt;CBlockTemplate&gt; pblocktemplate(CreateNewBlockWithKey(reservekey));
             ^~~~~~~~
In file included from /usr/include/c++/6/memory:81:0,
                 from /usr/include/boost/unordered/unordered_map_fwd.hpp:14,
                 from /usr/include/boost/unordered/unordered_map.hpp:17,
                 from /usr/include/boost/unordered_map.hpp:17,
                 from coins.h:18,
                 from main.h:16,
                 from miner.cpp:12:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template&lt;typename&gt; class auto_ptr;
                            ^~~~~~~~
  CXX      libbitcoin_server_a-net.o
  CXX      libbitcoin_server_a-noui.o
  CXX      libbitcoin_server_a-pow.o
  CXX      libbitcoin_server_a-rest.o
  CXX      libbitcoin_server_a-rpcblockchain.o
  CXX      libbitcoin_server_a-rpcmining.o
rpcmining.cpp: In function ‘json_spirit::Value setgenerate(const Array&amp;, bool)’:
rpcmining.cpp:173:13: warning: ‘template&lt;class&gt; class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
             auto_ptr&lt;CBlockTemplate&gt; pblocktemplate(CreateNewBlockWithKey(reservekey));
             ^~~~~~~~
In file included from /usr/include/c++/6/memory:81:0,
                 from /usr/include/boost/config/no_tr1/memory.hpp:21,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:23,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/boost/date_time/time_clock.hpp:17,
                 from /usr/include/boost/thread/thread_time.hpp:9,
                 from /usr/include/boost/thread/lock_types.hpp:18,
                 from /usr/include/boost/thread/pthread/mutex.hpp:16,
                 from /usr/include/boost/thread/mutex.hpp:16,
                 from allocators.h:14,
                 from streams.h:9,
                 from net.h:17,
                 from rpcmining.cpp:10:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template&lt;typename&gt; class auto_ptr;
                            ^~~~~~~~
  CXX      libbitcoin_server_a-rpcmisc.o
  CXX      libbitcoin_server_a-rpcnet.o
  CXX      libbitcoin_server_a-rpcrawtransaction.o
  CXX      libbitcoin_server_a-rpcserver.o
  CXX      script/libbitcoin_server_a-sigcache.o
  CXX      libbitcoin_server_a-timedata.o
  CXX      libbitcoin_server_a-txdb.o
  CXX      libbitcoin_server_a-txmempool.o
  AR       libbitcoin_server.a
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
  CXX      libbitcoin_common_a-base58.o
  CXX      libbitcoin_common_a-chainparams.o
chainparams.cpp: In constructor ‘CMainParams::CMainParams()’:
chainparams.cpp:161:51: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
         base58Prefixes[PUBKEY_ADDRESS] = list_of(0);
                                                   ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
chainparams.cpp:162:51: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
         base58Prefixes[SCRIPT_ADDRESS] = list_of(5);
                                                   ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
chainparams.cpp:163:53: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
         base58Prefixes[SECRET_KEY] =     list_of(128);
                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
chainparams.cpp:164:72: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
      base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x88)(0xB2)(0x1E);
                                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
chainparams.cpp:165:72: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
      base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x88)(0xAD)(0xE4);
                                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
chainparams.cpp: In constructor ‘CTestNetParams::CTestNetParams()’:
chainparams.cpp:220:53: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
         base58Prefixes[PUBKEY_ADDRESS] = list_of(111);
                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
chainparams.cpp:221:53: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
         base58Prefixes[SCRIPT_ADDRESS] = list_of(196);
                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
chainparams.cpp:222:53: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
         base58Prefixes[SECRET_KEY]     = list_of(239);
                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
chainparams.cpp:223:72: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
      base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x35)(0x87)(0xCF);
                                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
chainparams.cpp:224:72: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector&lt;unsigned char&gt;’ and ‘boost::assign_detail::generic_list&lt;int&gt;’)
      base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x35)(0x83)(0x94);
                                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(const std::vector&lt;_Tp, _Alloc&gt;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
     vector&lt;_Tp, _Alloc&gt;::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::vector&lt;_Tp, _Alloc&gt;&amp;&amp;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(vector&amp;&amp; __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector&lt;_Tp, _Alloc&gt;&amp; std::vector&lt;_Tp, _Alloc&gt;::operator=(std::initializer_list&lt;_Tp&gt;) [with _Tp = unsigned char; _Alloc = std::allocator&lt;unsigned char&gt;]
       operator=(initializer_list&lt;value_type&gt; __l)
       ^~~~~~~~
Makefile:3117: recipe for target 'libbitcoin_common_a-chainparams.o' failed
make[2]: *** [libbitcoin_common_a-chainparams.o] Error 1
make[2]: Leaving directory '/home/oscar/src/bitcoin/src'
Makefile:6228: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/oscar/src/bitcoin/src'
Makefile:569: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
</code></pre>

<h3>I think the problem is in the configure step, but I could be wrong:</h3>

<p>I have tried running the below command both with and without the <code>--disable-wallet</code> option. It seems to get further with this option, but still crashes with the same error:</p>

<p><code>$ ./configure CPPFLAGS="-I${BDB_PREFIX}/include/ -O2" LDFLAGS="-L${BDB_PREFIX}/lib/" --with-gui</code></p>

<p><strong>Why is it failing here? Is there any work around?</strong></p>

<bitcoin-core>
Why is bitcoin core failing to build on Ubuntu?
Dev Oskii
# Why is bitcoin core failing to build on Ubuntu?

(Asked by: username_0 on 2017-11-12)

**I am trying to build bitcoin core from source using `Ubuntu 17.04` with this guide: <http://bitzuma.com/posts/compile-bitcoin-core-from-source-on-ubuntu/>**

The build fails when I use `sudo make`.

## The Error is:

```
Making all in src
make[1]: Entering directory '/home/oscar/src/bitcoin/src'
make[2]: Entering directory '/home/oscar/src/bitcoin/src'
  CXX      crypto/libbitcoinconsensus_la-sha1.lo
  CXX      crypto/libbitcoinconsensus_la-sha256.lo
  CXX      crypto/libbitcoinconsensus_la-sha512.lo
  CXX      crypto/libbitcoinconsensus_la-ripemd160.lo
  CXX      script/libbitcoinconsensus_la-bitcoinconsensus.lo
  CXXLD    libbitcoinconsensus.la
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
  CXX      bitcoind-bitcoind.o
  CXX      libbitcoin_server_a-addrman.o
  CXX      libbitcoin_server_a-alert.o
  CXX      libbitcoin_server_a-checkpoints.o
  CXX      libbitcoin_server_a-init.o
  CXX      libbitcoin_server_a-leveldbwrapper.o
  CXX      libbitcoin_server_a-main.o
  CXX      libbitcoin_server_a-miner.o
miner.cpp: In function ‘CBlockTemplate* CreateNewBlock(const CScript&)’:
miner.cpp:94:5: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
     auto_ptr<CBlockTemplate> pblocktemplate(new CBlockTemplate());
     ^~~~~~~~
In file included from /usr/include/c++/6/memory:81:0,
                 from /usr/include/boost/unordered/unordered_map_fwd.hpp:14,
                 from /usr/include/boost/unordered/unordered_map.hpp:17,
                 from /usr/include/boost/unordered_map.hpp:17,
                 from coins.h:18,
                 from main.h:16,
                 from miner.cpp:12:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
miner.cpp: In function ‘void BitcoinMiner(CWallet*)’:
miner.cpp:469:13: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
             auto_ptr<CBlockTemplate> pblocktemplate(CreateNewBlockWithKey(reservekey));
             ^~~~~~~~
In file included from /usr/include/c++/6/memory:81:0,
                 from /usr/include/boost/unordered/unordered_map_fwd.hpp:14,
                 from /usr/include/boost/unordered/unordered_map.hpp:17,
                 from /usr/include/boost/unordered_map.hpp:17,
                 from coins.h:18,
                 from main.h:16,
                 from miner.cpp:12:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
  CXX      libbitcoin_server_a-net.o
  CXX      libbitcoin_server_a-noui.o
  CXX      libbitcoin_server_a-pow.o
  CXX      libbitcoin_server_a-rest.o
  CXX      libbitcoin_server_a-rpcblockchain.o
  CXX      libbitcoin_server_a-rpcmining.o
rpcmining.cpp: In function ‘json_spirit::Value setgenerate(const Array&, bool)’:
rpcmining.cpp:173:13: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
             auto_ptr<CBlockTemplate> pblocktemplate(CreateNewBlockWithKey(reservekey));
             ^~~~~~~~
In file included from /usr/include/c++/6/memory:81:0,
                 from /usr/include/boost/config/no_tr1/memory.hpp:21,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:23,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/boost/date_time/time_clock.hpp:17,
                 from /usr/include/boost/thread/thread_time.hpp:9,
                 from /usr/include/boost/thread/lock_types.hpp:18,
                 from /usr/include/boost/thread/pthread/mutex.hpp:16,
                 from /usr/include/boost/thread/mutex.hpp:16,
                 from allocators.h:14,
                 from streams.h:9,
                 from net.h:17,
                 from rpcmining.cpp:10:
/usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
   template<typename> class auto_ptr;
                            ^~~~~~~~
  CXX      libbitcoin_server_a-rpcmisc.o
  CXX      libbitcoin_server_a-rpcnet.o
  CXX      libbitcoin_server_a-rpcrawtransaction.o
  CXX      libbitcoin_server_a-rpcserver.o
  CXX      script/libbitcoin_server_a-sigcache.o
  CXX      libbitcoin_server_a-timedata.o
  CXX      libbitcoin_server_a-txdb.o
  CXX      libbitcoin_server_a-txmempool.o
  AR       libbitcoin_server.a
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
  CXX      libbitcoin_common_a-base58.o
  CXX      libbitcoin_common_a-chainparams.o
chainparams.cpp: In constructor ‘CMainParams::CMainParams()’:
chainparams.cpp:161:51: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
         base58Prefixes[PUBKEY_ADDRESS] = list_of(0);
                                                   ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
chainparams.cpp:162:51: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
         base58Prefixes[SCRIPT_ADDRESS] = list_of(5);
                                                   ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
chainparams.cpp:163:53: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
         base58Prefixes[SECRET_KEY] =     list_of(128);
                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
chainparams.cpp:164:72: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
      base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x88)(0xB2)(0x1E);
                                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
chainparams.cpp:165:72: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
      base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x88)(0xAD)(0xE4);
                                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
chainparams.cpp: In constructor ‘CTestNetParams::CTestNetParams()’:
chainparams.cpp:220:53: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
         base58Prefixes[PUBKEY_ADDRESS] = list_of(111);
                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
chainparams.cpp:221:53: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
         base58Prefixes[SCRIPT_ADDRESS] = list_of(196);
                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
chainparams.cpp:222:53: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
         base58Prefixes[SECRET_KEY]     = list_of(239);
                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
chainparams.cpp:223:72: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
      base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x35)(0x87)(0xCF);
                                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
chainparams.cpp:224:72: error: ambiguous overload for ‘operator=’ (operand types are ‘std::vector<unsigned char>’ and ‘boost::assign_detail::generic_list<int>’)
      base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x35)(0x83)(0x94);
                                                                     ^
In file included from /usr/include/c++/6/vector:69:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/vector.tcc:167:5: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
     vector<_Tp, _Alloc>::
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from chainparamsbase.h:9,
                 from chainparams.h:9,
                 from chainparams.cpp:6:
/usr/include/c++/6/bits/stl_vector.h:450:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
       ^~~~~~~~
/usr/include/c++/6/bits/stl_vector.h:471:7: note: candidate: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
Makefile:3117: recipe for target 'libbitcoin_common_a-chainparams.o' failed
make[2]: *** [libbitcoin_common_a-chainparams.o] Error 1
make[2]: Leaving directory '/home/oscar/src/bitcoin/src'
Makefile:6228: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/oscar/src/bitcoin/src'
Makefile:569: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

```

### I think the problem is in the configure step, but I could be wrong:

I have tried running the below command both with and without the `--disable-wallet` option. It seems to get further with this option, but still crashes with the same error:

`$ ./configure CPPFLAGS="-I${BDB_PREFIX}/include/ -O2" LDFLAGS="-L${BDB_PREFIX}/lib/" --with-gui`

**Why is it failing here? Is there any work around?**

**Tags:** bitcoin-core


---

## 2 answers

### Answer by username_1 on 2017-11-13. Score: 2 | Accepted answer

Those instructions appear to be several years old, notwithstanding the date at the top of the page. They are very obsolete and not helpful for the present day.

* It's based on Ubuntu 14.04, which dates from 2014.
* It is telling you to build version 0.10.0 of Bitcoin Core, which was released in February 2015 and won't work well with the current network. Moreover it seems to be incompatible with modern compilers, hence the errors you are seeing.
* They want you to build Berkeley DB from source, which is pointless. There are perfectly good packages in Ubuntu.

You can find up-to-date build instructions in the source tree at `doc/build-unix.md`, or read them online at <https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md>. However before doing anything else you'll want to `git checkout v0.15.1` so that you are looking at the current version (as of this writing).

(By the way you shouldn't need to `sudo` make. It's safer to do that as an unprivileged user.)


---

### Answer by username_2 on 2017-11-13. Score: 0

The Bitcoin core build documentation is a bit convoluted. The easiest way to build is to use the provided dependency make script rather than trying to install the dependencies individually.

In your case it looks like maybe you've got the wrong version of Boost or maybe your gcc version is too old. Either way I'd recommend starting from scratch and use these steps:

```
$ sudo apt update
$ sudo apt upgrade
$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3 curl
$ sudo git clone https://github.com/bitcoin/bitcoin.git
$ chown -R your_username:your_username /usr/src/bitcoin
$ cd bitcoin/depends
$ make
$ cd ..
$ ./autogen.sh
$ CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure --prefix=/
$ make
$ sudo make install

```

> **Comments:**
> **username_3**: Please update in 2018, so that it works for new comer.  

---

