Build error: [Makefile:4073: src/wallet/libbitcoin_system_la-dictionary.lo] Error 1
krassotkin opened 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?