配置比特币核心构建

源代码包括文档,可以在许多文件中找到。查看位于bitcoin目录中的README.md中的主要文档。在本章中,我们将在Linux上构建比特币核心守护进程(服务器),也称为bitcoind(类Unix系统)。通过阅读doc/build-unix.md上的指南来审阅有关在您的平台上编译bitcoind命令行客户端的说明。备用说明可在doc目录中找到;例如,Windows说明可在build-windows.md中找到。截至撰写本文时,Android、FreeBSD、NetBSD、OpenBSD、macOS(OSX)、Unix和Windows的说明均可用。

仔细查看构建文档的第一部分,其中包含构建先决条件。这些是必须在您的系统上存在的库,然后您才能开始编译比特币。如果这些先决条件缺失,构建过程将失败并显示错误。如果由于您遗漏了某些先决条件而导致此问题,则可以安装它,然后从中断处恢复构建过程。假设已安装了先决条件,则可以通过使用autogen.sh脚本生成一组构建脚本来启动构建过程:

$ ./autogen.sh

libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.

libtoolize: copying file 'build-aux/ltmain.sh'

libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build-aux/m4'.

...

configure.ac:58: installing 'build-aux/missing'

src/Makefile.am: installing 'build-aux/depcomp'

parallel-tests: installing 'build-aux/test-driver'

autogen.sh脚本创建一组自动配置脚本,将查询您的系统以发现正确的设置,并确保您具有编译代码所需的所有必要库。其中最重要的是configure脚本,它提供了许多不同的选项来定制构建过程。使用--help标志查看各种选项:

$ ./configure --help

`configure' configures Bitcoin Core 24.0.1 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

...

Optional Features:

--disable-option-checking ignore unrecognized --enable/--with options

--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)

--enable-FEATURE[=ARG] include FEATURE [ARG=yes]

--enable-silent-rules less verbose build output (undo: "make V=1")

--disable-silent-rules verbose build output (undo: "make V=0")

...

configure脚本允许您通过--enable-FEATURE和--disable-FEATURE标志启用或禁用bitcoind的某些功能,其中FEATURE被替换为功能名称,如帮助输出中所列。在本章中,我们将使用所有默认功能构建bitcoind客户端。我们不会使用配置标志,但您应该查看它们以了解客户端的可选功能。如果您处于学术环境中,计算机实验室的限制可能要求您在您的主目录中安装应用程序(例如,使用--prefix=$HOME)。

以下是一些有用的选项,可以覆盖configure脚本的默认行为:

--prefix=$HOME

这将覆盖生成的可执行文件的默认安装位置(默认为/usr/local/)。使用$HOME将所有内容放在您的主目录中,或者使用其他路径。

--disable-wallet

这用于禁用参考钱包实现。

--with-incompatible-bdb

如果要构建钱包,则允许使用不兼容版本的 Berkeley DB 库。

--with-gui=no

不构建图形用户界面,这需要 Qt 库。这将仅构建服务器和命令行 Bitcoin Core。

接下来,运行配置脚本,自动发现所有必要的库,并为您的系统创建一个定制的构建脚本:

$ ./configure

checking for pkg-config... /usr/bin/pkg-config

checking pkg-config is at least version 0.9.0... yes

checking build system type... x86_64-pc-linux-gnu

checking host system type... x86_64-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c

...

[many pages of configuration tests follow]

...

如果一切顺利,configure命令将结束,并创建定制的构建脚本,使我们能够编译bitcoind。如果存在任何缺少的库或错误,configure命令将以错误而不是创建构建脚本结束。如果出现错误,这很可能是由于缺少或不兼容的库引起的。再次查看构建文档,确保安装了缺少的先决条件,然后重新运行configure,看看是否解决了错误。

Last updated