关于如何在 Unix 中构建 Bitcoin Core 的一些说明。
(对于 BSD 特定的说明,请参阅此目录中的 build-*bsd.md
。)
构建
cmake -B build cmake --build build # 添加 "-j N" 以进行 N 个并行作业 cmake --install build # 可选
请参阅下面的说明,了解如何在流行的 Linux 发行版上,或完整的概述。
内存需求
C++ 编译器是内存密集型的。建议在编译 Bitcoin Core 时至少有 1.5 GB 的可用内存。在内存较少的系统上,可以调整 gcc 以使用额外的 CMAKE_CXX_FLAGS
来节省内存:cmake -B build -DCMAKE_CXX_FLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
或者,可以跳过调试信息的编译。对于默认的构建类型 RelWithDebInfo
,默认的编译标志是 -O2 -g
,可以使用以下方式更改:cmake -B build -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -g0"
最后,可以使用 clang(通常资源消耗较少)代替默认使用的 gcc:cmake -B build -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
Linux 发行版特定说明
Ubuntu & Debian
依赖构建说明
构建要求:sudo apt-get install build-essential cmake pkgconf python3
现在,你可以从自行编译的 构建,也可以安装所需的依赖项:sudo apt-get install libevent-dev libboost-dev
描述符钱包需要 SQLite:sudo apt install libsqlite3-dev
要构建不带钱包的 Bitcoin Core,请参阅
启用 ZMQ 的二进制文件使用 -DWITH_ZMQ=ON
编译,并且需要以下依赖项:sudo apt-get install libzmq3-dev
用户空间,静态定义跟踪 (USDT) 依赖项:sudo apt install systemtap-sdt-dev
启用 IPC 的二进制文件使用 -DENABLE_IPC=ON
编译,并且需要以下依赖项。如果不需要 IPC 功能,请跳过。sudo apt-get install libcapnp-dev capnproto
GUI 依赖项:
Bitcoin Core 包含一个使用跨平台 Qt 框架构建的 GUI。要编译 GUI,我们需要安装 Qt 的必要部分,libqrencode 和传递 -DBUILD_GUI=ON
。如果你不打算使用 GUI,请跳过。sudo apt-get install qt6-base-dev qt6-tools-dev qt6-l10n-tools qt6-tools-dev-tools libgl-dev
对于 Qt 6.5 及更高版本,必须在运行时安装 libxcb-cursor0
软件包。
此外,为了支持现代桌面环境的 Wayland 协议:sudo apt install qt6-wayland
除非显式禁用此功能,否则 GUI 将能够将地址编码为 QR 码。要安装 libqrencode,请运行:sudo apt-get install libqrencode-dev
否则,如果你不需要 QR 编码支持,请使用 -DWITH_QRENCODE=OFF
选项禁用此功能,以便编译 GUI。
Fedora
依赖构建说明
构建要求:sudo dnf install gcc-c++ cmake make python3
现在,你可以从自行编译的 构建,也可以安装所需的依赖项:sudo dnf install libevent-devel boost-devel
描述符钱包需要 SQLite:sudo dnf install sqlite-devel
要构建不带钱包的 Bitcoin Core,请参阅
启用 ZMQ 的二进制文件使用 -DWITH_ZMQ=ON
编译,并且需要以下依赖项:sudo dnf install zeromq-devel
用户空间,静态定义跟踪 (USDT) 依赖项:sudo dnf install systemtap-sdt-devel
启用 IPC 的二进制文件使用 -DENABLE_IPC=ON
编译,并且需要以下依赖项。如果不需要 IPC 功能,请跳过。sudo dnf install capnproto
GUI 依赖项:
Bitcoin Core 包含一个使用跨平台 Qt 框架构建的 GUI。要编译 GUI,我们需要安装 Qt 的必要部分,libqrencode 和传递 -DBUILD_GUI=ON
。如果你不打算使用 GUI,请跳过。sudo dnf install qt6-qtbase-devel qt6-qttools-devel
对于 Qt 6.5 及更高版本,必须在运行时安装 xcb-util-cursor
软件包。
此外,为了支持现代桌面环境的 Wayland 协议:sudo dnf install qt6-qtwayland
除非显式禁用此功能,否则 GUI 将能够将地址编码为 QR 码。要安装 libqrencode,请运行:sudo dnf install qrencode-devel
否则,如果你不需要 QR 编码支持,请使用 -DWITH_QRENCODE=OFF
选项禁用此功能,以便编译 GUI。
依赖项
有关完整的概述,请参阅 ,以及 如何自行编译它们,如果你不想使用你的 Linux 发行版的软件包。
禁用钱包模式
当意图仅运行 P2P 节点而不使用钱包时,可以使用以下命令在禁用钱包模式下编译 Bitcoin Core:cmake -B build -DENABLE_WALLET=OFF
在这种情况下,不依赖于 SQLite。
也可以在禁用钱包模式下使用 getblocktemplate
RPC 调用进行挖矿。
其他配置标志
可以使用以下命令显示其他配置标志的列表:cmake -B build -LH
设置和构建示例:Arch Linux
此示例列出了在 Arch Linux 上设置和构建最新更改的仅命令行发行版所需的步骤:pacman --sync --needed cmake boost gcc git libevent make python sqlite git clone https://github.com/bitcoin/bitcoin.git cd bitcoin/ cmake -B build cmake --build build ctest --test-dir build ./build/bin/bitcoind ./build/bin/bitcoin help