2017-07-09 13:15:45 +02:00
Dependencies
============
These are the dependencies currently used by Bitcoin Core. You can find instructions for installing them in the `build-*.md` file for your platform.
2018-12-10 14:56:36 +08:00
| Dependency | Version used | Minimum required | CVEs | Shared | [Bundled Qt library ](https://doc.qt.io/qt-5/configure-options.html#third-party-libraries ) |
2017-09-07 13:52:38 +02:00
| --- | --- | --- | --- | --- | --- |
2018-12-10 14:56:36 +08:00
| Berkeley DB | [4.8.30 ](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html ) | 4.8.x | No | | |
2021-06-23 14:14:56 +08:00
| Boost | [1.71.0 ](https://www.boost.org/users/download/ ) | [1.64.0 ](https://github.com/bitcoin/bitcoin/pull/22320 ) | No | | |
2021-06-28 15:58:49 +08:00
| Clang< sup > [ \* ](#note1 )</ sup > | | [7.0 ](https://releases.llvm.org/download.html ) (C++17 & std::filesystem support) | | | |
2019-06-22 19:20:50 +08:00
| Expat | [2.2.7 ](https://libexpat.github.io/ ) | | No | Yes | |
2017-09-07 13:52:38 +02:00
| fontconfig | [2.12.1 ](https://www.freedesktop.org/software/fontconfig/release/ ) | | No | Yes | |
2019-12-29 13:07:50 +02:00
| FreeType | [2.7.1 ](https://download.savannah.gnu.org/releases/freetype ) | | No | | [Yes ](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk ) (Android only) |
2021-06-28 15:58:49 +08:00
| GCC | | [8.1 ](https://gcc.gnu.org/ ) (C++17 & std::filesystem support) | | | |
2021-09-09 13:36:36 +08:00
| glibc | | [2.17 ](https://www.gnu.org/software/libc/ ) | | | | |
2019-12-29 13:07:50 +02:00
| HarfBuzz-NG | | | | | [Yes ](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk ) |
2021-05-17 11:31:14 +10:00
| libevent | [2.1.12-stable ](https://github.com/libevent/libevent/releases ) | [2.0.21 ](https://github.com/bitcoin/bitcoin/pull/18676 ) | No | | |
2021-03-14 13:23:23 +02:00
| libnatpmp | git commit [4536032... ](https://github.com/miniupnp/libnatpmp/tree/4536032ae32268a45c073a4d5e91bbab4534773a ) | | No | | |
2019-07-24 09:12:01 +08:00
| libpng | | | | | [Yes ](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk ) |
2019-03-28 10:43:40 +00:00
| librsvg | | | | | |
2020-11-19 07:43:42 +08:00
| MiniUPnPc | [2.2.2 ](https://miniupnp.tuxfamily.org/files ) | | No | | |
2019-07-24 09:12:01 +08:00
| PCRE | | | | | [Yes ](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk ) |
2020-07-13 14:25:47 +10:00
| Python (tests) | | [3.6 ](https://www.python.org/downloads ) | | | |
2017-09-07 13:52:38 +02:00
| qrencode | [3.4.4 ](https://fukuchi.org/works/qrencode ) | | No | | |
2021-05-25 10:56:37 +03:00
| Qt | [5.12.11 ](https://download.qt.io/official_releases/qt/ ) | [5.9.5 ](https://github.com/bitcoin/bitcoin/issues/20104 ) | No | | |
2020-09-30 12:24:12 -04:00
| SQLite | [3.32.1 ](https://sqlite.org/download.html ) | [3.7.17 ](https://github.com/bitcoin/bitcoin/pull/19077 ) | | | |
2019-07-24 09:12:01 +08:00
| XCB | | | | | [Yes ](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk ) (Linux only) |
2021-06-07 18:24:11 +02:00
| systemtap ([tracing ](tracing.md ))| | | | | |
2019-07-24 09:12:01 +08:00
| xkbcommon | | | | | [Yes ](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk ) (Linux only) |
2019-01-17 18:25:38 +02:00
| ZeroMQ | [4.3.1 ](https://github.com/zeromq/libzmq/releases ) | 4.0.0 | No | | |
2021-03-14 13:06:19 +02:00
| zlib | | | | | [Yes ](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk ) |
2019-01-23 10:00:33 +01:00
2021-06-25 07:17:55 +03:00
< a name = "note1" > Note \*</ a > : When compiling with `-stdlib=libc++` , the minimum supported libc++ version is 7.0.
2019-01-23 10:00:33 +01:00
Controlling dependencies
------------------------
Some dependencies are not needed in all configurations. The following are some factors that affect the dependency list.
#### Options passed to `./configure`
2020-02-23 02:35:10 +02:00
* MiniUPnPc is not needed with `--without-miniupnpc` .
* libnatpmp is not needed with `--without-natpmp` .
2020-10-19 14:17:58 -04:00
* Berkeley DB is not needed with `--disable-wallet` or `--without-bdb` .
2020-10-15 13:50:00 +00:00
* SQLite is not needed with `--disable-wallet` or `--without-sqlite` .
2019-01-23 10:00:33 +01:00
* 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` .
2021-06-07 18:24:11 +02:00
* If the systemtap dependency is absent, USDT support won't compiled in.
2019-01-23 10:00:33 +01:00
* ZeroMQ is needed only with the `--with-zmq` option.
#### Other
2019-04-11 13:15:29 +02:00
* librsvg is only needed if you need to run `make deploy` on (cross-compilation to) macOS.
2021-03-14 13:06:19 +02:00
* Not-Qt-bundled zlib is required to build the [DMG tool ](../contrib/macdeploy/README.md#deterministic-macos-dmg-notes ) from the libdmg-hfsplus project.