electron/docs/development/build-instructions-windows.md

156 lines
4.2 KiB
Markdown
Raw Normal View History

2015-08-31 05:30:36 +00:00
# Build Instructions (Windows)
Follow the guidelines below for building Electron on Windows.
2013-09-09 07:35:57 +00:00
2013-08-14 22:43:35 +00:00
## Prerequisites
* Windows 7 / Server 2008 R2 or higher
* Visual Studio 2017 - [download VS 2017 Community Edition for
2018-03-13 05:21:09 +00:00
free](https://www.visualstudio.com/vs/)
2013-08-14 22:43:35 +00:00
* [Python 2.7](http://www.python.org/download/releases/2.7/)
* [Node.js](https://nodejs.org/download/)
2015-08-31 05:30:36 +00:00
* [Git](http://git-scm.com)
* [Debugging Tools for Windows](https://msdn.microsoft.com/en-us/library/windows/hardware/ff551063.aspx)
if you plan on creating a full distribution since `symstore.exe` is used for
creating a symbol store from `.pdb` files.
2013-08-14 22:43:35 +00:00
If you don't currently have a Windows installation,
[dev.microsoftedge.com](https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/)
2015-08-31 05:30:36 +00:00
has timebombed versions of Windows that you can use to build Electron.
2014-11-15 03:21:12 +00:00
2015-08-31 05:30:36 +00:00
Building Electron is done entirely with command-line scripts and cannot be done
with Visual Studio. You can develop Electron with any editor but support for
building with Visual Studio will come in the future.
2013-08-14 22:43:35 +00:00
**Note:** Even though Visual Studio is not used for building, it's still
**required** because we need the build toolchains it provides.
2013-08-14 22:43:35 +00:00
2015-08-31 05:30:36 +00:00
## Getting the Code
2013-08-14 22:43:35 +00:00
2014-11-15 03:13:40 +00:00
```powershell
2016-03-31 23:49:59 +00:00
$ git clone https://github.com/electron/electron.git
2013-08-14 22:43:35 +00:00
```
## Bootstrapping
The bootstrap script will download all necessary build dependencies and create
2015-08-31 05:30:36 +00:00
the build project files. Notice that we're using `ninja` to build Electron so
there is no Visual Studio project generated.
2013-08-14 22:43:35 +00:00
2014-11-15 03:13:40 +00:00
```powershell
2015-09-01 04:10:48 +00:00
$ cd electron
$ python script\bootstrap.py -v
2013-08-14 22:43:35 +00:00
```
## Building
Build both Release and Debug targets:
2014-11-15 03:13:40 +00:00
```powershell
2015-09-01 04:10:48 +00:00
$ python script\build.py
2013-08-14 22:43:35 +00:00
```
You can also only build the Debug target:
2014-11-15 03:13:40 +00:00
```powershell
2015-09-01 04:10:48 +00:00
$ python script\build.py -c D
2013-08-14 22:43:35 +00:00
```
After building is done, you can find `electron.exe` under `out\D` (debug
target) or under `out\R` (release target).
2013-08-14 22:43:35 +00:00
2016-07-26 08:40:58 +00:00
## 32bit Build
2016-07-26 08:40:58 +00:00
To build for the 32bit target, you need to pass `--target_arch=ia32` when
running the bootstrap script:
```powershell
2016-07-26 08:40:58 +00:00
$ python script\bootstrap.py -v --target_arch=ia32
```
The other building steps are exactly the same.
2016-07-26 08:42:12 +00:00
## Visual Studio project
To generate a Visual Studio project, you can pass the `--msvs` parameter:
```powershell
$ python script\bootstrap.py --msvs
```
## Cleaning
To clean the build files:
```powershell
$ npm run clean
```
2017-03-17 18:47:20 +00:00
To clean only `out` and `dist` directories:
2017-11-24 10:13:57 +00:00
```sh
$ npm run clean-build
```
**Note:** Both clean commands require running `bootstrap` again before building.
2013-08-14 22:43:35 +00:00
## Tests
2016-10-06 17:25:33 +00:00
See [Build System Overview: Tests](build-system-overview.md#tests)
## Troubleshooting
### Command xxxx not found
If you encountered an error like `Command xxxx not found`, you may try to use
the `VS2015 Command Prompt` console to execute the build scripts.
### Fatal internal compiler error: C1001
Make sure you have the latest Visual Studio update installed.
### Assertion failed: ((handle))->activecnt >= 0
2014-11-15 03:15:11 +00:00
If building under Cygwin, you may see `bootstrap.py` failed with following
error:
2017-11-24 10:13:57 +00:00
```sh
Assertion failed: ((handle))->activecnt >= 0, file src\win\pipe.c, line 1430
Traceback (most recent call last):
File "script/bootstrap.py", line 87, in <module>
sys.exit(main())
File "script/bootstrap.py", line 22, in main
update_node_modules('.')
File "script/bootstrap.py", line 56, in update_node_modules
execute([NPM, 'install'])
File "/home/zcbenz/codes/raven/script/lib/util.py", line 118, in execute
raise e
subprocess.CalledProcessError: Command '['npm.cmd', 'install']' returned non-zero exit status 3
```
2015-08-31 05:30:36 +00:00
This is caused by a bug when using Cygwin Python and Win32 Node together. The
solution is to use the Win32 Python to execute the bootstrap script (assuming
you have installed Python under `C:\Python27`):
2015-09-01 04:10:48 +00:00
```powershell
$ /cygdrive/c/Python27/python.exe script/bootstrap.py
```
### LNK1181: cannot open input file 'kernel32.lib'
2015-08-31 05:30:36 +00:00
Try reinstalling 32bit Node.js.
### Error: ENOENT, stat 'C:\Users\USERNAME\AppData\Roaming\npm'
Creating that directory [should fix the problem](https://stackoverflow.com/a/25095327/102704):
2014-11-15 03:13:40 +00:00
```powershell
2015-09-01 04:10:48 +00:00
$ mkdir ~\AppData\Roaming\npm
```
### node-gyp is not recognized as an internal or external command
You may get this error if you are using Git Bash for building, you should use
PowerShell or VS2015 Command Prompt instead.