Skip to content

FreeBSD build guide

(updated for FreeBSD 12.1)

This guide describes how to build bitcoind and command-line utilities on FreeBSD.

This guide does not contain instructions for building the GUI.

Preparation

You will need the following dependencies, which can be installed as root via pkg:

pkg install cmake libevent ninja openssl boost-libs git

Optional libraries

To enable UPnP:

pkg install miniupnpc

If not installed, UPnP support should be disabled by passing -DENABLE_UPNP=OFF to cmake.

To enable ZeroMQ:

pkg install libzmq4

If not installed, ZeroMQ support should be disabled by passing -DBUILD_BITCOIN_ZMQ=OFF to cmake.

In order to run the test suite (recommended), you will need to have Python 3:

pkg install python3

In order to run the benchmark tool, you will need to have git-lfs installed:

pkg install git-lfs

To run the ZeroMQ tests:

pkg install py37-pyzmq

For the wallet (optional):

pkg install db5

If you also want to build the GUI client bitcoin-qt Qt 5 is necessary. To build with Qt 5 you need the following packages installed:

pkg install qt5-qmake qt5-buildtools qt5-linguisttools qt5-widgets protobuf qt5-testlib libqrencode-4.0.0

You can do without the libqrencode-4.0.0 package, just pass -DENABLE_QRCODE=OFF on the cmake command line.

Building Bitcoin Cash Node

Download the source code:

git clone https://gitlab.com/bitcoin-cash-node/bitcoin-cash-node.git
cd bitcoin-cash-node/

To build with wallet:

mkdir build
cd build
cmake -GNinja -DBUILD_BITCOIN_QT=OFF ..
ninja
ninja check # recommended

To build without wallet:

mkdir build
cd build
cmake -GNinja -DBUILD_BITCOIN_QT=OFF -DBUILD_BITCOIN_WALLET=OFF ..
ninja
ninja check # recommended

To build with wallet and GUI:

mkdir build
cd build
cmake -GNinja ..
ninja
ninja check # recommended
ninja test_bitcoin-qt # recommended

After a successful test you can install the newly built binaries to your bin directory. Note that this will probably overwrite any previous version installed, including binaries from different sources. It might be necessary to run as root, depending on your system configuration:

ninja install #optional