user62759: 
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?

user5757: 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.)

62759: <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>
 5757: <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>
