libbitcoin/libbitcoin-explorer

Build error: [Makefile:4073: src/wallet/libbitcoin_system_la-dictionary.lo] Error 1

Closed this issue · 3 comments

I tried to install libbitcoin-explorer according to this instruction:
https://github.com/libbitcoin/libbitcoin-explorer/blob/master/README.md

$ uname -a
Linux fedora 5.14.14-200.fc34.x86_64 #1 SMP Wed Oct 20 16:15:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

$ ./install.sh --prefix=/home/me/bin/libbitcoin/libbitcoin-explorer --build-boost --build-zmq --disable-shared

But there is an error in the build process:

<...>
CXX src/wallet/libbitcoin_system_la-dictionary.lo
In file included from src/wallet/dictionary.cpp:19:
./include/bitcoin/system/wallet/dictionary.hpp:34:21: error: ‘size_t’ does not name a type
34 | static BC_CONSTEXPR size_t dictionary_size = 2048;
| ^~~~~~
./include/bitcoin/system/wallet/dictionary.hpp:26:1: note: ‘size_t’ is defined in header ‘’; did you forget to ‘#include >’?
25 | #include <bitcoin/system/compat.hpp>
+++ |+#include
26 |
./include/bitcoin/system/wallet/dictionary.hpp:42:33: error: ‘dictionary_size’ was not declared in this scope
42 | typedef std::array<const char*, dictionary_size> dictionary;
| ^~~~~~~~~~~~~~~
./include/bitcoin/system/wallet/dictionary.hpp:42:48: error: template argument 2 is invalid
42 | typedef std::array<const char*, dictionary_size> dictionary;
| ^
src/wallet/dictionary.cpp:2078:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
2078 | };
| ^
src/wallet/dictionary.cpp:4133:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
4133 | };
| ^
src/wallet/dictionary.cpp:6188:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
6188 | };
| ^
src/wallet/dictionary.cpp:8243:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
8243 | };
| ^
src/wallet/dictionary.cpp:10298:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
10298 | };
| ^
src/wallet/dictionary.cpp:12353:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
12353 | };
| ^
src/wallet/dictionary.cpp:14408:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
14408 | };
| ^
src/wallet/dictionary.cpp:16463:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
16463 | };
| ^
src/wallet/dictionary.cpp:18518:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
18518 | };
| ^
src/wallet/dictionary.cpp:20573:1: error: too many braces around scalar initializer for type ‘const dictionary’ {aka ‘const int’}
20573 | };
| ^
make: *** [Makefile:4073: src/wallet/libbitcoin_system_la-dictionary.lo] Error 1
make: *** Waiting for unfinished jobs....

Looks like a missing include. Our CI builds were offline fir a while as Travis transitioned, so we may have missed covering it. Missing includes are treated differently by different compilers. I’m on the road for a few more days, but if nobody gets to it first I’ll kick the Travis builds and track it down.

any fix for this problem yet?

Sorry for the delay. Travis cut our build service down to almost nothing when they went to a pay service, so we haven't had automated builds for a while. That's why this happened in the first place. @pmienk is working on getting us back up on GitHub Actions.