Skip to content

Building on Windows

AronVanAmmers edited this page Aug 21, 2014 · 25 revisions

Cross-compiling with MinGW64

Create fresh ubuntu 14.04 (Trusty Tahr) VM:

http://cdimage.ubuntu.com/trusty/daily-live/current/trusty-desktop-amd64.iso

See http://ubuntu.com for more details on installing Ubuntu.

Set up a crossbuild environment as described in Setting-up-prebuilt-crossbuild-environment, or for full instructions on how to set up the environment from scratch, Setting-up-crossbuild-environment-from-scratch.

Build cpp-ethereum:

$ git clone https://github.com/ethereum/cpp-ethereum
$ mkdir cpp-ethereum-build
$ cd cpp-ethereum-build
$ cmake ../cpp-ethereum -DTARGET_PLATFORM=w64
$ make
$ cd ..

Compiling with Visual Studio Express 2013

Ensure you have installed:

  • Visual Studio Express 2013. VS 2013 is a minimum as cpp-ethereum uses languages features not supported in 2012. The Professional edition should also work, but this has not been tested.
  • Windows 7 SDK or Windows 8 SDK - for files like winsock2.h and gdi32.lib
  • Python. Needed to compile Qt.
  • Perl. Needed to compile Qt (they suggest ActiveState Perl).
  • Ruby. Needed to compile Qt.
  • Git for Windows 1.9.0+. This includes (among other things) git and curl which are needed for bootstrap.sh.
  • Make sure a newer perl installation is on the PATH, otherwise QtWebkit will fail to compile when it picks up the git installed perl. bootstrap.sh should (hopefully) automatically juggle the paths correctly.
  • Note that msysgit version 1.9.4-preview20140815 (the current one at moment of writing) includes a bug which prevents git svn from working, breaking the bootstrap script. The bug report contains a workaround using rebase.
  • 7-Zip.

Ensure 7z.exe, perl.exe, python.exe and ruby.exe have been added to the PATH.

Execute the following commands within a Git Bash shell to download and compile Ethereum and all it's dependencies to the current directory:

$ curl -o bootstrap.sh -L https://raw.github.com/ethereum/cpp-ethereum/develop/windows/bootstrap.sh
$ ./bootstrap.sh

This will fetch about 300MB of sources and take many hours to compile (mostly Qt). It should then be possible to compile and debug by opening Ethereum.sln with Visual Studio 2013. Executing bootstrap.sh again should only be necessary if in future Ethereum requires additional libaries that weren't compiled in the previous run. Note that bootstrap.sh has been heavily updated since 22/04/2013, so a clean run is required from earlier versions. If Qt apps are not required, then it should be possible to edit bootstrap.sh to skip this stuff and save a lot of time.

Clone this wiki locally