Skip to content

Latest commit

 

History

History
97 lines (59 loc) · 2.54 KB

windows.md

File metadata and controls

97 lines (59 loc) · 2.54 KB

Building Zed for Windows

Note

The following commands may be executed in any shell.

Repository

Clone down the Zed repository.

Dependencies

  • Install Rust. If it's already installed, make sure it's up-to-date:

    rustup update
  • Install the Rust wasm toolchain:

    rustup target add wasm32-wasi
  • Install Visual Studio with optional component MSVC v*** - VS YYYY C++ x64/x86 build tools and install Windows 11 or 10 SDK depending on your system

Note

v*** is your VS version and YYYY is year when your VS was released.

Backend dependencies

Warning

This section is still in development. The instructions are not yet complete.

If you are developing collaborative features of Zed, you'll need to install the dependencies of zed's collab server:

Alternatively, if you have Docker installed you can bring up all the collab dependencies using Docker Compose:

docker compose up -d

Building from source

Once you have the dependencies installed, you can build Zed using Cargo.

For a debug build:

cargo run

For a release build:

cargo run --release

And to run the tests:

cargo test --workspace

Installing from msys2

MSYS2 distribution provides Zed as a package. To download the prebuilt binary, run

pacman -Syu
pacman -S mingw-w64-ucrt-x86_64-zed

then you can run zed in a UCRT64 shell.

Note

Please, report any issue in https://github.com/msys2/MINGW-packages/issues first.

Troubleshooting

Can't compile zed

Before reporting the issue, make sure that you have the latest rustc version with rustup update.

Cargo errors claiming that a dependency is using unstable features

Try cargo clean and cargo build.

STATUS_ACCESS_VIOLATION

This error can happen if you are using the "rust-lld.exe" linker. Consider trying a different linker.

If you are using a global config, consider moving the Zed repository to a nested directory and add a .cargo/config.toml with a custom linker config in the parent directory.

See this issue for more information #12041