> For the complete documentation index, see [llms.txt](https://ref.gitbook.io/notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ref.gitbook.io/notes/build-systems/windows.md).

# Windows

**Building Dlib:**

Same as in Linux it uses `cmake`. Open git bash shell or DOS cmd:

```bash
cd dlib
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=install -T host=x64 ..
cmake --build . --config Release --target INSTALL
```

Result is a fully ready header files and lib under `install` folder.

**Building Protobuf:**

In Linux the build system uses `configure` but in Windows system it uses `cmake`. Open git bash shell:

```bash
cd protobuf
cd cmake
mkdir -p build/release && cd build/release
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install ../..
cmake --build . --config Release --target INSTALL
```

Result is fully ready header files, lib, and `protoc.exe` under the `install` folder.&#x20;

**Building Libsodium:**

This the most different to build under Windows. It does not use `cmake` nor any other Unix way of building things. Open any DOS shell.

Edit `buildall.bat` and comment out non-existent Visual Studio versions. For example, I have `Visual Studio 2019` therefore I keep this line and comment out the other lines.

```bash
cd libsodium
cd builds\msvc\build
buildall.bat
```

Result is dynamic and static libraries under `libsodium/bin` folder.&#x20;
