lbrycrd/build_msvc
MarcoFalke 3515612e06
Merge #15473: bench: Benchmark MempoolToJSON
fa38535130 bench: Benchmark MempoolToJSON (MarcoFalke)
fa5dc3534b rpc: Pass mempool into MempoolToJSON (MarcoFalke)

Pull request description:

  This is used in production (e.g. https://jochen-hoenicke.de/queue/#0,24h), so add a benchmark to avoid making it even slower.

  Related:

  * "getrawmempool true RPC call is O(n^2)" #14765

Tree-SHA512: da09d2e54ee261af8671152f97f863cf1acd7a6adc6578e94046b1ec9e647a670c67499760ef765254f65522dfdf773c3c8729006fa2d63ccb6d53166bafc425
2019-03-06 16:58:37 -05:00
..
bench_bitcoin Merge #15473: bench: Benchmark MempoolToJSON 2019-03-06 16:58:37 -05:00
bitcoin-cli msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
bitcoin-tx msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
bitcoin-wallet msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
bitcoind msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libbitcoin_cli msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libbitcoin_common msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libbitcoin_crypto msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libbitcoin_qt scripted-diff: Remove NDEBUG pre-define 2019-02-17 18:26:11 +08:00
libbitcoin_server msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libbitcoin_util msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libbitcoin_wallet msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libbitcoin_wallet_tool msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libbitcoin_zmq msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libbitcoinconsensus msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libleveldb scripted-diff: Remove NDEBUG pre-define 2019-02-17 18:26:11 +08:00
libsecp256k1 scripted-diff: Remove NDEBUG pre-define 2019-02-17 18:26:11 +08:00
libunivalue scripted-diff: Remove NDEBUG pre-define 2019-02-17 18:26:11 +08:00
msbuild/tasks Visual Studio build configuration for Bitcoin Core 2018-08-10 09:19:00 +02:00
test_bitcoin test: Remove useless test_bitcoin_main.cpp 2019-02-28 15:44:02 -05:00
test_bitcoin-qt scripted-diff: Remove NDEBUG pre-define 2019-02-17 18:26:11 +08:00
testconsensus msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
.gitignore auto generate MSVC project files 2018-08-26 23:54:26 +08:00
bitcoin.sln msvc: build leveldb locally 2019-02-01 00:28:50 +08:00
bitcoin_config.h Visual Studio build configuration for Bitcoin Core 2018-08-10 09:19:00 +02:00
common.init.vcxproj Visual Studio build configuration for Bitcoin Core 2018-08-10 09:19:00 +02:00
common.vcxproj msvc: Use a single file to specify the include path 2019-03-01 02:30:07 +08:00
libsecp256k1_config.h msvc: build secp256k1 locally 2019-02-01 00:28:49 +08:00
msvc-autogen.py [tools] Add wallet inspection and modification tool 2019-01-30 16:26:52 -05:00
README.md Modify build instructions to work with Command Prompt as well as 2018-12-18 05:23:38 +00: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 the dependencies doc for versions):

  • Berkeley DB,
  • OpenSSL,
  • Boost,
  • libevent,
  • ZeroMQ

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

  • SECP256K1,
  • 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
  • Use Python to generate *.vcxproj from Makefile
    PS >python msvc-autogen.py
  • Build in Visual Studio.