conan-vcpkg — скилл для Claude Code: что делает и как установить
Помогает настроить менеджеры Conan и vcpkg в проектах на C и C++, связать их с CMake и управлять совместимостью библиотек.
npx skills add mohitmishra786/low-level-dev-skills --skill conan-vcpkg -a claude-codeЧто делает conan-vcpkg
Скилл содержит правила по выбору между Conan и vcpkg, а также по созданию манифестов для CMake. Для vcpkg разобраны классический режим и файл vcpkg.json с фиксацией версий через builtin-baseline. Для Conan показаны конфигурации под Conan 2.x с генераторами CMakeDeps и CMakeToolchain.
Внутри собраны параметры кросс-компиляции под Linux ARM64, шаблоны conanfile.py и таблица соответствия имён библиотек (включая zlib, OpenSSL и fmt). Чтобы vcpkg связался со сборкой, в вызов CMake обязательно передавать путь к файлу vcpkg.cmake.
Какие задачи решает
- выбрать между Conan и vcpkg под конкретную операционную систему
- составить манифест
vcpkg.jsonс фильтрами по платформам - подключить генераторы Conan 2.x к
CMakeLists.txt - настроить профиль Conan для кросс-компиляции на Linux ARM64
Примеры запросов агенту
- Помоги составить vcpkg.json с библиотеками fmt и OpenSSL для сборки через CMake
- Как настроить conanfile.txt и сгенерировать conan_toolchain.cmake?
- Создай профиль Conan для кросс-компиляции проекта под linux-arm64
Как установить conan-vcpkg
1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill conan-vcpkg -a claude-code2Вручную: положить файлы
~/.claude/skills/conan-vcpkg/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/conan-vcpkg/
1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill conan-vcpkg -a codex2Вручную: положить файлы
.agents/skills/conan-vcpkg/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill conan-vcpkg -a cursor2Вручную: положить файлы
.cursor/skills/conan-vcpkg/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install mohitmishra786/low-level-dev-skills conan-vcpkg2Вручную: положить файлы
.github/skills/conan-vcpkg/SKILL.md1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill conan-vcpkg -a gemini-cli2Командой платформы
gemini skills install https://github.com/mohitmishra786/low-level-dev-skills --path skills/build-systems/conan-vcpkgВручную: положить файлы
.devin/skills/conan-vcpkg/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill conan-vcpkg -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о conan-vcpkg
Как установить conan-vcpkg в Claude Code?
Выполните команду npx skills add mohitmishra786/low-level-dev-skills --skill conan-vcpkg -a claude-code в терминале.
Что делает скилл conan-vcpkg?
Он направляет ИИ-агента при настройке зависимостей C и C++, работе с манифестами vcpkg.json или conanfile.txt и их связывании с CMake.
Когда скилл советует выбрать vcpkg вместо Conan?
vcpkg рекомендуется для простых проектов, открытого кода на GitHub и команд, работающих в основном с компилятором MSVC на Windows.
Исходный текст
SKILL.md · MIT
---
name: conan-vcpkg
description: C/C++ package manager skill covering Conan and vcpkg. Use when adding third-party library dependencies to C/C++ projects, managing binary compatibility, integrating with CMake, or choosing between Conan and vcpkg. Activates on queries about Conan, vcpkg, C++ dependency management, conanfile.txt, vcpkg.json, CMake package integration, or C++ package managers.
---
# Conan and vcpkg
## Purpose
Guide agents through C/C++ dependency management with Conan and vcpkg: declaring dependencies, integrating with CMake, managing binary compatibility, and choosing the right tool for a given project.
## Triggers
- "How do I add a C++ library dependency with Conan?"
- "How do I use vcpkg with CMake?"
- "What's the difference between Conan and vcpkg?"
- "How do I add zlib/openssl/fmt with a package manager?"
- "How do I create a vcpkg.json manifest?"
- "My Conan package build is failing — how do I debug it?"
## Workflow
### 1. Conan vs vcpkg decision
```text
Which package manager?
├── Team uses MSVC on Windows primarily → vcpkg (better MSVC integration)
├── Need binary packages (no source builds in CI) → Conan (binary cache)
├── Need cross-compilation support → Conan (profiles) or Zig-based builds
├── Need a specific version of a package → Conan (flexible versioning)
├── Quick project setup, just need it to work → vcpkg (simpler)
└── Open-source project, broad audience → vcpkg (GitHub-integrated)
```
### 2. vcpkg setup
```bash
# Clone vcpkg
git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh # Linux/macOS
./vcpkg/bootstrap-vcpkg.bat # Windows
# Install packages (classic mode)
./vcpkg/vcpkg install zlib curl openssl
# Integrate with CMake
cmake -S . -B build \
-DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
```
### 3. vcpkg manifest mode (recommended)
```json
// vcpkg.json — place at project root
{
"name": "myapp",
"version": "1.0.0",
"dependencies": [
"zlib",
"curl",
{ "name": "openssl", "version>=": "3.0.0" },
{ "name": "boost-filesystem", "platform": "!windows" },
{
"name": "fmt",
"features": ["core"]
}
],
"builtin-baseline": "abc123..."
}
```
```cmake
# CMakeLists.txt
cmake_minimum_required(VERSION 3.20)
project(myapp)
find_package(ZLIB REQUIRED)
find_package(CURL REQUIRED)
find_package(fmt REQUIRED)
add_executable(myapp src/main.cpp)
target_link_libraries(myapp PRIVATE ZLIB::ZLIB CURL::libcurl fmt::fmt)
```
```bash
# Build — vcpkg automatically installs dependencies
cmake -S . -B build \
-DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build
```
### 4. Conan setup
```bash
# Install Conan
pip install conan
# Set up default profile (detects compiler, OS)
conan profile detect
# Check your profile
conan profile show
```
### 5. Conan with CMake (Conan 2.x)
```ini
# conanfile.txt
[requires]
zlib/1.3
fmt/10.2.1
openssl/3.2.0
[generators]
CMakeDeps
CMakeToolchain
[options]
openssl/*:shared=False
```
```bash
# Install dependencies
conan install . --output-folder=build --build=missing
# Configure and build
cmake -S . -B build \
-DCMAKE_TOOLCHAIN_FILE=build/conan_toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release
cmake --build build
```
```cmake
# CMakeLists.txt
find_package(ZLIB REQUIRED)
find_package(fmt REQUIRED)
find_package(OpenSSL REQUIRED)
add_executable(myapp src/main.cpp)
target_link_libraries(myapp PRIVATE
ZLIB::ZLIB
fmt::fmt
OpenSSL::SSL OpenSSL::Crypto
)
```
### 6. Conan profiles for cross-compilation
```ini
# ~/.conan2/profiles/linux-arm64
[settings]
os=Linux
arch=armv8
compiler=gcc
compiler.version=12
compiler.libcxx=libstdc++11
build_type=Release
[buildenv]
CC=aarch64-linux-gnu-gcc
CXX=aarch64-linux-gnu-g++
[tool_requires]
# Tools that run on build machine (x86)
```
```bash
# Cross-compile
conan install . \
--profile:build=default \
--profile:host=linux-arm64 \
--output-folder=build-arm \
--build=missing
```
### 7. conanfile.py (advanced)
```python
# conanfile.py
from conan import ConanFile
from conan.tools.cmake import CMakeToolchain, CMakeDeps, CMake
class MyAppConan(ConanFile):
name = "myapp"
version = "1.0"
settings = "os", "compiler", "build_type", "arch"
def requirements(self):
self.requires("zlib/1.3")
self.requires("fmt/10.2.1")
if self.settings.os == "Linux":
self.requires("openssl/3.2.0")
def generate(self):
tc = CMakeToolchain(self)
tc.generate()
deps = CMakeDeps(self)
deps.generate()
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
```
### 8. Common dependency lookup
| Library | vcpkg name | Conan name |
|---------|-----------|-----------|
| zlib | `zlib` | `zlib/1.3` |
| OpenSSL | `openssl` | `openssl/3.2.0` |
| libcurl | `curl` | `libcurl/8.4.0` |
| {fmt} | `fmt` | `fmt/10.2.1` |
| spdlog | `spdlog` | `spdlog/1.12.0` |
| Boost | `boost` | `boost/1.83.0` |
| nlohmann-json | `nlohmann-json` | `nlohmann_json/3.11.3` |
| googletest | `gtest` | `gtest/1.14.0` |
| Google Benchmark | `benchmark` | `benchmark/1.8.3` |
| SQLite | `sqlite3` | `sqlite3/3.44.0` |
| protobuf | `protobuf` | `protobuf/4.25.1` |
For vcpkg baseline pinning and Conan binary cache setup, see [references/package-manager-patterns.md](references/package-manager-patterns.md).
## Related skills
- Use `skills/build-systems/cmake` for CMake integration with both Conan and vcpkg
- Use `skills/compilers/cross-gcc` for cross-compilation with Conan profiles
- Use `skills/build-systems/ninja` as the backend for package-managed projects
© mohitmishra786 · MIT · mohitmishra786/low-level-dev-skills