These are the dependencies currently used by Bitcoin Core. You can find instructions for installing them in the build-*.md
file for your platform.
Dependency | Version used | Minimum required | CVEs | Shared | Bundled Qt library |
---|---|---|---|---|---|
Berkeley DB | 4.8.30 | 4.8.x | No | ||
Boost | 1.71.0 | 1.58.0 | No | ||
Clang | 5.0+ (C++17 support) | ||||
Expat | 2.2.7 | No | Yes | ||
fontconfig | 2.12.1 | No | Yes | ||
FreeType | 2.7.1 | No | Yes (Android only) | ||
GCC | 7+ (C++17 support) | ||||
HarfBuzz-NG | Yes | ||||
libevent | 2.1.11-stable | 2.0.21 | No | ||
libnatpmp | git commit 4536032... | No | |||
libpng | Yes | ||||
librsvg | |||||
MiniUPnPc | 2.2.2 | No | |||
PCRE | Yes | ||||
Python (tests) | 3.6 | ||||
qrencode | 3.4.4 | No | |||
Qt | 5.12.10 | 5.9.5 | No | ||
SQLite | 3.32.1 | 3.7.17 | |||
XCB | Yes (Linux only) | ||||
xkbcommon | Yes (Linux only) | ||||
ZeroMQ | 4.3.1 | 4.0.0 | No | ||
zlib | Yes |
Some dependencies are not needed in all configurations. The following are some factors that affect the dependency list.
- MiniUPnPc is not needed with
--without-miniupnpc
. - libnatpmp is not needed with
--without-natpmp
. - Berkeley DB is not needed with
--disable-wallet
or--without-bdb
. - SQLite is not needed with
--disable-wallet
or--without-sqlite
. - Qt is not needed with
--without-gui
. - If the qrencode dependency is absent, QR support won't be added. To force an error when that happens, pass
--with-qrencode
. - ZeroMQ is needed only with the
--with-zmq
option.
- librsvg is only needed if you need to run
make deploy
on (cross-compilation to) macOS. - Not-Qt-bundled zlib is required to build the DMG tool from the libdmg-hfsplus project.