VS2019编译BTC(比特币核心)实战指南,从环境搭建到成功构建

admin3 2026-02-10 14:00

比特币核心(Bitcoin Core)作为比特币网络的原生客户端,其源码的编译与理解是深入探索区块链技术的重要一步,本文将详细介绍如何在 Windows 环境下,使用 Visual Studio 2019 (VS2019) 编译比特币核心源码,旨在为开发者提供一份清晰、可操作的实战指南。

准备工作:编译环境的 prerequisites

在开始编译之前,确保你的系统满足以下基本要求:

  1. 操作系统:推荐使用 64 位 Windows 10 或 Windows 11,32 位系统可能无法编译或运行成功。
  2. Visual Studio 2019:必须安装 Visual Studio 2019,建议从 Visual Studio 官网下载 "Community"(社区版,免费)或更高版本。
    • 关键组件:在安装 VS2019 时,务必确保选中以下工作负载和组件:
      • “使用 C++ 的桌面开发” 工作负载:这是核心,包含了 C++ 编译器、标准库、Windows SDK 等。
      • MSBuild:通常包含在上述工作负载中。
      • Windows 10 SDK (10.0.xxxxx.x):建议安装最新的 Windows 10 SDK,或至少是 10.0.17763.0 或更高版本。
      • C++ CMake 工具(可选,但推荐,现代项目构建工具)。
      • Git for Windows:用于从 GitHub 克隆比特币核心源码。
  3. Windows SDK:确保安装了与 Visual Studio 匹配的 Windows SDK,VS2019 通常默认包含。
  4. Git:从 Git for Windows 下载并安装,用于获取源码。
  5. CMake:从 CMake 官网 下载并安装 Windows x64 安装包,虽然比特币核心主要使用 autotools(通过 depends 脚本),但 CMake 在某些辅助工具或未来可能的迁移中可能会用到,提前安装无妨。
  6. Python:比特币核心的构建脚本需要 Python 3.6+,建议从 Python 官网 安装,并在安装时勾选 "Add Python to PATH"。
  7. 硬件要求
    • CPU:64 位 x86 处理器,多核 CPU 能显著加快编译速度。
    • 内存:推荐至少 8GB RAM,16GB 或以上更佳,因为编译过程非常消耗内存。
    • 硬盘空间:至少需要 20GB 以上的可用空间,用于源码、依赖库和编译产物。

获取比特币核心源码

使用 Git 克隆比特币核心的官方仓库:

git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin

克隆完成后,你可以选择切换到特定的标签(tag)来编译某个稳定版本,例如编译 v0.21.2 版本:

git checkout v0.21.2

编译依赖库(depends 脚本)

比特币核心依赖于许多第三方库,如 Boost、Berkeley DB (BDB)、Qt (如果

随机配图
需要 GUI)、MiniUPnPc 等,手动编译这些库繁琐且易出错,幸运的是,比特币项目提供了 depends 脚本来简化这一过程。

  1. 安装 MSYS2depends 脚本在 MSYS2 环境下运行,从 MSYS2 官网 下载并安装,安装完成后,打开 MSYS2 MINGW64 终端(或 MSYS2 UCRT64,根据你的选择和 VS2019 的兼容性,MINGW64 更常见)。
  2. 更新 MSYS2:在 MSYS2 终端中运行以下命令更新系统:
    pacman -Syu
    # 可能需要关闭终端重新打开,然后再次运行
    pacman -Su
  3. 安装依赖工具:在 MSYS2 MINGW64 终端中安装构建所需的工具:
    pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja
  4. 运行 depends 脚本
    • 回到你的比特币核心源码目录(C:\Users\YourUser\bitcoin)。
    • 打开 VS2019 x64 Native Tools Command Prompt(开始菜单中搜索,它已经配置好了必要的编译环境变量)。
    • 在 VS2019 x64 Native Tools Command Prompt 中,进入 depends 目录:
      cd depends
    • 执行构建脚本。win64 是目标平台,对应你的 VS2019 x64 配置:
      build-win64.sh

      或者如果你使用的是 PowerShell 或 CMD,MSYS2 的路径配置正确,也可以尝试:

      build-win64
    • 脚本会自动下载并编译所有必需的依赖库,这个过程可能需要较长时间(从几十分钟到几小时不等,取决于你的网络和硬件性能),耐心等待,直到看到 "Done!" 等成功提示。

配置与生成 Bitcoin Core 项目文件

依赖库编译完成后,我们需要为 VS2019 生成项目文件(.sln 和 .vcxproj),比特币核心使用 autotools,但为了方便在 Windows 下使用 MSVC 编译,我们可以利用 depends 脚本生成的环境,或者使用 CMake。

这里推荐使用 configure 脚本结合 MSVC 工具链:

  1. 确保环境正确:确保你仍在 VS2019 x64 Native Tools Command Prompt 中,并且当前目录在比特币核心的根目录(C:\Users\YourUser\bitcoin)。
  2. 运行 configure 脚本
    • 比特币核心提供了一个 autogen.sh 脚本来生成 configure 脚本(如果是从源码克隆,通常需要先运行,但某些预生成版本的仓库可能已经包含 configure)。
    • 运行 configure 脚本,指定 --prefixdepends\win64(这样生成的可文件会寻找依赖库的位置),并指定 --host=x86_64-w64-mingw32 如果使用 MinGW 工具链,但这里我们使用 MSVC,所以通常不需要 --host,而是依赖 depends 脚本设置的环境。
    • 更简单的方式是,depends 脚本在构建依赖时,可能会在 depends\win64\ 目录下生成一些配置好的脚本,我们可以利用 depends\win64\ 目录下的环境。
    • 另一种更直接的方式是,使用 depends\win64\msvc\build.bat 脚本(如果存在的话,具体请查看 depends 目录下的说明文件)。
    • depends 脚本成功运行后,你可以在比特币核心根目录下直接运行:
      ./autogen.sh (如果需要)
      ./configure --prefix=depends/win64 --disable-wallet-tool --disable-tests --disable-bench --without-gui (可选参数,根据需要开启或关闭功能)

      注意:--without-gui 会禁用 GUI(Qt)支持,编译速度更快,且不依赖 Qt,如果需要 GUI,则确保 depends 脚本编译了 Qt,并在 configure 时去掉 --without-gui

  3. 生成项目文件
    • configure 脚本会生成 Makefile 等文件,对于 VS2019,我们可以使用 msbuild 来直接编译,或者使用 CMake 生成项目文件。
    • 使用 MSBuildconfigure 生成了适合 MSBuild 的文件(通常需要特定的配置),可以直接运行:
      msbuild bitcoin.sln /p:Configuration=Release /p:Platform=x64

      但更常见的是使用 CMake。

    • 使用 CMake(推荐)
      • 创建一个用于构建的目录(build):
        mkdir build
        cd build
      • 运行 CMake,指定源码目录和生成器(Visual Studio 2019):
        cmake .. -G "Visual Studio 16 2019" -A x64
        • -G "Visual Studio 16 2019" 指定使用 VS2019。
        • -A x64 指定
本文转载自互联网,具体来源未知,或在文章中已说明来源,若有权利人发现,请联系我们更正。本站尊重原创,转载文章仅为传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如其他媒体、网站或个人从本网站转载使用,请保留本站注明的文章来源,并自负版权等法律责任。如有关于文章内容的疑问或投诉,请及时联系我们。我们转载此文的目的在于传递更多信息,同时也希望找到原作者,感谢各位读者的支持!
最近发表
随机文章
随机文章