C++ error building a fork of Bitcoin-ABC I'm creating a Bitcoin-ABC based altcoin, everything was fine when I compiled dynamically for my Ubuntu machine, but when I try making a static release build I get:

  CXXLD    libbitcoinconsensus.la
.libs/libbitcoinconsensus_la-arith_uint256.o: In function `base_uint&lt;256u&gt;::GetHex() const':
/root/xeroxcoin/src/arith_uint256.cpp:135: undefined reference to `base_blob&lt;256u&gt;::GetHex() const'
.libs/libbitcoinconsensus_la-arith_uint256.o: In function `uint256S(char const*)':
/root/xeroxcoin/src/uint256.h:123: undefined reference to `base_blob&lt;256u&gt;::SetHex(char const*)'
primitives/.libs/libbitcoinconsensus_la-block.o: In function `CBlock::ToString[abi:cxx11]() const':
/root/xeroxcoin/src/primitives/block.cpp:23: undefined reference to `base_blob&lt;256u&gt;::ToString() const'
/root/xeroxcoin/src/primitives/block.cpp:22: undefined reference to `base_blob&lt;256u&gt;::ToString() const'
/root/xeroxcoin/src/primitives/block.cpp:22: undefined reference to `base_blob&lt;256u&gt;::ToString() const'
primitives/.libs/libbitcoinconsensus_la-transaction.o: In function `COutPoint::ToString[abi:cxx11]() const':
/root/xeroxcoin/src/primitives/transaction.cpp:13: undefined reference to `base_blob&lt;256u&gt;::ToString() const'
primitives/.libs/libbitcoinconsensus_la-transaction.o: In function `CTransaction::ToString[abi:cxx11]() const':
/root/xeroxcoin/src/primitives/transaction.cpp:132: undefined reference to `base_blob&lt;256u&gt;::ToString() const'
script/.libs/libbitcoinconsensus_la-interpreter.o: In function `uint256S(char const*)':
/root/xeroxcoin/src/./uint256.h:123: undefined reference to `base_blob&lt;256u&gt;::SetHex(char const*)'
collect2: error: ld returned 1 exit status
Makefile:3619: recipe for target 'libbitcoinconsensus.la' failed
make[2]: *** [libbitcoinconsensus.la] Error 1
make[2]: Leaving directory '/root/xeroxcoin/src'
Makefile:9581: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/root/xeroxcoin/src'
Makefile:690: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1


This is with nearly vanilla Bitcoin-ABC code, and it looks to me like base_blob DOES exist and DOES have those methods.  Help?
I'm getting the exact same problem having forked Bitcoin to create a new altcoin. I believe the problem is related to a template being defined in a cpp rather than h file, and the different order of compilation due to file name changes. If I'm correct, then this reveals a subtle bug in the Bitcoin and Bitcoin ABC sources which should be fed back up the chain to assist future forkers.