# cross-gcc

Проведёт агента через настройку кросс-компиляции на GCC: триплеты, sysroot, pkg-config, тесты под QEMU и разбор типовых ошибок.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 682 установки · ★ 267
- Автор: mohitmishra786
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/mohitmishra786/low-level-dev-skills/tree/HEAD/skills/compilers/cross-gcc/SKILL.md
- Обновлён: 2026-06-27
- HTML: https://affpapa.org/nevibecode/skills/cross-gcc

## Что делает

Скилл описывает рабочий порядок сборки под чужую архитектуру с хоста x86-64. Агент сначала разбирается с триплетом — например, `aarch64-linux-gnu` для 64-битного ARM Linux или `arm-none-eabi` для bare-metal Cortex-M, — потом ставит тулчейн и только затем собирает код. Внутри есть таблица триплетов, команды установки для Debian и Ubuntu, примеры для C и C++ и отдельный случай сборки прошивки без стандартной библиотеки.

Дальше идут sysroot и pkg-config. Это два места, где кросс-сборка ломается чаще всего: без `--sysroot` линкер ищет библиотеки хоста, а `pkg-config` по умолчанию отдаёт хостовые пути. Скилл показывает, как выставить `PKG_CONFIG_SYSROOT_DIR` и `PKG_CONFIG_LIBDIR` и очистить `PKG_CONFIG_PATH`. Для CMake приведён готовый toolchain-файл с `CMAKE_SYSROOT` и режимами поиска, для autoconf — переменные `CC`, `CXX`, `AR` и флаг `--host`.

Проверка собранного бинарника идёт через QEMU: `qemu-user-static` для запуска Linux-бинарников и удалённая отладка через `qemu-aarch64-static -g 1234` вместе с `aarch64-linux-gnu-gdb`. Отдельная таблица разбирает ошибки вроде `wrong ELF class`, `cannot execute binary file` и `undefined reference to '__aeabi_*'` — с причиной и способом починки. Если вы собираете под ARM, RISC-V или MIPS и уже видели хоть одну из этих строк, скилл сэкономит вам поиск по форумам.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill cross-gcc -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/cross-gcc/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/cross-gcc/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill cross-gcc -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/cross-gcc/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill cross-gcc -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/cross-gcc/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install mohitmishra786/low-level-dev-skills cross-gcc
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/cross-gcc/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill cross-gcc -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/mohitmishra786/low-level-dev-skills --path skills/compilers/cross-gcc
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/cross-gcc/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill cross-gcc -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/mohitmishra786/low-level-dev-skills/tree/HEAD/skills/compilers/cross-gcc/SKILL.md

## Когда брать
- собрать бинарник под AArch64 с x86-64 хоста
- настроить sysroot, чтобы линкер не тянул хостовые библиотеки
- заставить pkg-config возвращать пути целевой системы
- собрать прошивку для Cortex-M без стандартной библиотеки
- запустить и отладить кросс-бинарник под QEMU и GDB

## Примеры запросов агенту
- Помоги настроить кросс-компиляцию под aarch64-linux-gnu для моего C-проекта
- pkg-config отдаёт хостовые библиотеки в кросс-сборке — как это исправить?
- Собери прошивку под cortex-m4 с arm-none-eabi и проверь её в QEMU

## Похожие
- [arm-cortex-expert](https://affpapa.org/nevibecode/agents/arm-cortex-expert.md) — субагент · ★ 41729
- [pulumi-arm-to-pulumi](https://affpapa.org/nevibecode/skills/pulumi-arm-to-pulumi.md) — скилл · 2100 установок
- [kernel-exploitation](https://affpapa.org/nevibecode/skills/kernel-exploitation.md) — скилл · 3600 установок
- [azure-infra-engineer](https://affpapa.org/nevibecode/agents/azure-infra-engineer.md) — субагент · 245 установок
- [cloud-logging-cross-project-configuration](https://affpapa.org/nevibecode/skills/cloud-logging-cross-project-configuration.md) — скилл · 4800 установок
- [embedded-systems](https://affpapa.org/nevibecode/skills/embedded-systems.md) — скилл · 6800 установок

Из того же набора: [mohitmishra786/low-level-dev-skills](https://affpapa.org/nevibecode/by/mohitmishra786/low-level-dev-skills.md) — 62 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
