lbrycrd/build_msvc
Wladimir J. van der Laan 8c69fae944
Merge #15457: Check std::system for -[alert|block|wallet]notify
f874e14cd3 [build]: check std::system for -[alert|block|wallet]notify (Sjors Provoost)
cc3ad56ff2 [build] MSVC: set HAVE_SYSTEM for desktop apps (Sjors Provoost)
c1c91bb78d [build] detect std::system or ::wsystem (Sjors Provoost)

Pull request description:

  Platforms such as iOs and Universal Windows Platform do not support launching a process through system().

ACKs for top commit:
  laanwj:
    code review ACK f874e14cd3

Tree-SHA512: 16bb4a8fa1896046ccb22a46c8985e1aa45f5b11ecf5539eb2299e9a58f1a5b085c0c12cb6939c7493d93abce7e84fadcbfc73374c887db63da6d00c08aa476d
2019-07-05 17:33:33 +02:00
..
bench_bitcoin Merge #16308: [MSVC] Copy build output to src/ automatically after build 2019-07-05 10:10:16 +08:00
bitcoin-cli [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
bitcoin-tx [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
bitcoin-wallet [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
bitcoind [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libbitcoin_cli [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libbitcoin_common [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libbitcoin_crypto [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libbitcoin_qt scripted-diff: Remove NDEBUG pre-define 2019-02-17 18:26:11 +08:00
libbitcoin_server [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libbitcoin_util [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libbitcoin_wallet [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libbitcoin_wallet_tool [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libbitcoin_zmq [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libbitcoinconsensus [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libleveldb [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libsecp256k1 [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libunivalue [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
msbuild/tasks [MSVC]: Create the config.ini as part of bitcoind build 2019-06-21 16:23:35 +09:00
test_bitcoin [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
test_bitcoin-qt scripted-diff: Remove NDEBUG pre-define 2019-02-17 18:26:11 +08:00
testconsensus [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
.gitignore Cleaned up and consolidated msvc build files to allow faster builds and easier migration to vs2019. 2019-06-19 09:20:20 +02:00
bitcoin.sln Cleaned up and consolidated msvc build files to allow faster builds and easier migration to vs2019. 2019-06-19 09:20:20 +02:00
bitcoin_config.h [build] MSVC: set HAVE_SYSTEM for desktop apps 2019-06-06 11:50:16 +02:00
common.init.vcxproj [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
common.vcxproj [MSVC] Copy build output to src/ automatically after build 2019-07-01 19:16:19 +09:00
libsecp256k1_config.h msvc: build secp256k1 locally 2019-02-01 00:28:49 +08:00
msvc-autogen.py Cleaned up and consolidated msvc build files to allow faster builds and easier migration to vs2019. 2019-06-19 09:20:20 +02:00
README.md docs: add rapidcheck to vcpkg install list 2019-06-19 16:04:37 +08:00

Building Bitcoin Core with Visual Studio

Introduction

Solution and project files to build the Bitcoin Core applications (except Qt dependent ones) with Visual Studio 2017 can be found in the build_msvc directory.

Building with Visual Studio is an alternative to the Linux based cross-compiler build.

Dependencies

A number of open source libraries are required in order to be able to build Bitcoin.

Options for installing the dependencies in a Visual Studio compatible manner are:

  • Use Microsoft's vcpkg to download the source packages and build locally. This is the recommended approach.
  • Download the source code, build each dependency, add the required include paths, link libraries and binary tools to the Visual Studio project files.
  • Use nuget packages with the understanding that any binary files have been compiled by an untrusted third party.

The external dependencies required for the Visual Studio build are (see dependencies.md for more info):

  • Berkeley DB
  • OpenSSL
  • Boost
  • libevent
  • ZeroMQ
  • RapidCheck

Additional dependencies required from the bitcoin-core GitHub repository are:

  • libsecp256k1
  • LevelDB

Building

The instructions below use vcpkg to install the dependencies.

  • Clone vcpkg from the github repository and install as per the instructions in the main README.md.
  • Install the required packages (replace x64 with x86 as required):
    PS >.\vcpkg install --triplet x64-windows-static boost-filesystem boost-signals2 boost-test libevent openssl zeromq berkeleydb secp256k1 leveldb rapidcheck
  • Use Python to generate *.vcxproj from Makefile
    PS >python msvc-autogen.py
  • Build in Visual Studio.