I built Bitcoin Core v32.1 from source on Windows 11 26H2 + VS2026 18.11.3 using doc/build-windows-msvc.md build process and noticed that the resulting executables are all smaller than the official Windows release binaries (unsigned):
| Executable | MSVC Build | Official Build |
|---|---|---|
| bitcoin.exe | 0.5 MB | 1.9 MB |
| bitcoin-cli.exe | 0.9 MB | 2.3 MB |
| bitcoin-tx.exe | 2.8 MB | 4.6 MB |
| bitcoin-util.exe | 1.9 MB | 4.2 MB |
| bitcoin-wallet.exe | 4.7 MB | 8.9 MB |
| bitcoind.exe | 12.6 MB | 17.1 MB |
| bitcoin-qt.exe | 38.1 MB | 44.7 MB |
Functional comparison
bitcoind -help output appears identical except for the version string:
My build:
Bitcoin Core daemon version v32.1
Official build:
Bitcoin Core daemon version v32.1.0
Question
Is this size difference expected simply because of MSVC versus the official maybe WSL/Mingw-w64 toolchain, or is there some additional build configuration that explains why the official release binaries contain more code?
Has anyone compared the generated sizes between other toolchains and official Windows release builds?












