:2026-09-18 10:24 点击:1
比特币核心(Bitcoin Core)作为比特币网络的原生客户端,其源码的编译与理解是深入探索区块链技术的重要一步,本文将详细介绍如何在 Windows 环境下,使用 Visual Studio 2019 (VS2019) 编译比特币核心源码,旨在为开发者提供一份清晰、可操作的实战指南。
在开始编译之前,确保你的系统满足以下基本要求:
autotools(通过 depends 脚本),但 CMake 在某些辅助工具或未来可能的迁移中可能会用到,提前安装无妨。使用 Git 克隆比特币核心的官方仓库:
git clone https://github.com/bitcoin/bitcoin.git cd bitcoin
克隆完成后,你可以选择切换到特定的标签(tag)来编译某个稳定版本,例如编译 v0.21.2 版本:
git checkout v0.21.2
比特币核心依赖于许多第三方库,如 Boost、Berkeley DB (BDB)、Qt (如果需要 GUI)、MiniUPnPc 等,手动编译这些库繁琐且易出错,幸运的是,比特币项目提供了 depends 脚本来简化这一过程。
depends 脚本在 MSYS2 环境下运行,从 MSYS2 官网 下载并安装,安装完成后,打开 MSYS2 MINGW64 终端(或 MSYS2 UCRT64,根据你的选择和 VS2019 的兼容性,MINGW64 更常见)。pacman -Syu # 可能需要关闭终端重新打开,然后再次运行 pacman -Su
pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja
C:\Users\YourUser\bitcoin)。depends 目录:cd depends
win64 是目标平台,对应你的 VS2019 x64 配置:build-win64.sh
或者如果你使用的是 PowerShell 或 CMD,MSYS2 的路径配置正确,也可以尝试:
build-win64
依赖库编译完成后,我们需要为 VS2019 生成项目文件(.sln 和 .vcxproj),比特币核心使用 autotools,但为了方便在 Windows 下使用 MSVC 编译,我们可以利用 depends 脚本生成的环境,或者使用 CMake。
这里推荐使用 configure 脚本结合 MSVC 工具链:
C:\Users\YourUser\bitcoin)。autogen.sh 脚本来生成 configure 脚本(如果是从源码克隆,通常需要先运行,但某些预生成版本的仓库可能已经包含 configure)。configure 脚本,指定 --prefix 为 depends\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。
configure 脚本会生成 Makefile 等文件,对于 VS2019,我们可以使用 msbuild 来直接编译,或者使用 CMake 生成项目文件。configure 生成了适合 MSBuild 的文件(通常需要特定的配置),可以直接运行:msbuild bitcoin.sln /p:Configuration=Release /p:Platform=x64
但更常见的是使用 CMake。
build):mkdir build cd build
cmake .. -G "Visual Studio 16 2019" -A x64
-G "Visual Studio 16 2019" 指定使用 VS2019。-A x64 指定本文由用户投稿上传,若侵权请提供版权资料并联系删除!