Changeset View
Changeset View
Standalone View
Standalone View
doc/build-windows.md
Show First 20 Lines • Show All 136 Lines • ▼ Show 20 Lines | way. This will install to `c:\workspace\bitcoin-abc`, for example: | ||||
cmake -GNinja .. -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/Win64.cmake -DBUILD_BITCOIN_SEEDER=OFF -DCMAKE_INSTALL_PREFIX=/mnt/c/workspace/bitcoin-abc | cmake -GNinja .. -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/Win64.cmake -DBUILD_BITCOIN_SEEDER=OFF -DCMAKE_INSTALL_PREFIX=/mnt/c/workspace/bitcoin-abc | ||||
ninja install | ninja install | ||||
Footnotes | Footnotes | ||||
--------- | --------- | ||||
<a name="footnote1">1</a>: There is currently a bug in the 64 bit Mingw-w64 cross compiler packaged for WSL/Ubuntu Xenial 16.04 that | <a name="footnote1">1</a>: There is currently a bug in the 64 bit Mingw-w64 cross compiler packaged for WSL/Ubuntu Xenial 16.04 that | ||||
causes two of the bitcoin executables to crash shortly after start up. The bug is related to the | causes two of the ecash executables to crash shortly after start up. The bug is related to the | ||||
-fstack-protector-all g++ compiler flag which is used to mitigate buffer overflows. | -fstack-protector-all g++ compiler flag which is used to mitigate buffer overflows. | ||||
Installing the Mingw-w64 packages from the Ubuntu 17.10 distribution solves the issue, however, this is not | Installing the Mingw-w64 packages from the Ubuntu 17.10 distribution solves the issue, however, this is not | ||||
an officially supported approach and it's only recommended if you are prepared to reinstall WSL/Ubuntu should | an officially supported approach and it's only recommended if you are prepared to reinstall WSL/Ubuntu should | ||||
something break. | something break. | ||||
<a name="footnote2">2</a>: Starting from Ubuntu Xenial 16.04, the Mingw-w64 packages install two different compiler | <a name="footnote2">2</a>: Starting from Ubuntu Xenial 16.04, the Mingw-w64 packages install two different compiler | ||||
options to allow a choice between either posix or win32 threads. The default option is win32 threads which is the more | options to allow a choice between either posix or win32 threads. The default option is win32 threads which is the more | ||||
efficient since it will result in binary code that links directly with the Windows kernel32.lib. Unfortunately, the headers | efficient since it will result in binary code that links directly with the Windows kernel32.lib. Unfortunately, the headers | ||||
required to support win32 threads conflict with some of the classes in the C++11 standard library, in particular std::mutex. | required to support win32 threads conflict with some of the classes in the C++11 standard library, in particular std::mutex. | ||||
It's not possible to build the Bitcoin ABC code using the win32 version of the Mingw-w64 cross compilers (at least not without | It's not possible to build the Bitcoin ABC code using the win32 version of the Mingw-w64 cross compilers (at least not without | ||||
modifying headers in the Bitcoin ABC source code). | modifying headers in the Bitcoin ABC source code). |