dcr 0.8.4

DCR is a utility for managing C/C++ projects in a Cargo-like style.
---
sidebar_label: FAQ
---

# FAQ

## Registry not found

```
error: registry not found
```

**Solution:** Make sure `~/.dcr/config.toml` exists:

```toml
[registry.default]
url = "https://index.dcr.pm"
priority = 1
```

And check `DCR_INDEX_PATH`:

```bash
echo $DCR_INDEX_PATH
```

## Compiler not found

```
error: compiler not found
```

**Solution:** Ensure a compiler is installed and available in PATH.

```bash
which gcc
which clang
```

Or specify explicitly via `[toolchain]` in `dcr.toml`.

## Ctrl+C during build

DCR handles SIGINT: interrupts the current compilation and exits with non-zero code.

## How to create a library?

See [Library Recipe](/docs/recipes/library-project).

## How to cross-compile to Windows?

See [Cross-Compile Recipe](/docs/recipes/cross-to-windows).

## How to create a multi-package project?

See [Workspace Recipe](/docs/recipes/multi-package-workspace).

## Bootloader / pure NASM OS image

Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk image.

See [OS-dev recipe](/docs/recipes/os-flat-bin-archive).

## Lock file

`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`.