Pular para o conteúdo
Skillpedia
Código em geral40 mil · #5413

vcpkg

Ajuda seu agente a gerenciar dependências em projetos C++. Ele configura o vcpkg, lida com versões e facilita a compilação em diferentes plataformas.

O que ela faz

O vcpkg é uma ferramenta que ajuda desenvolvedores C++ a gerenciar bibliotecas (pacotes) que seus programas precisam. Ele facilita a instalação e o uso dessas bibliotecas em diferentes sistemas operacionais e configurações.

Quando usar

  • ✓Ao iniciar um novo projeto C++ e precisar adicionar bibliotecas externas.
  • ✓Ao querer garantir que seu projeto use versões específicas de bibliotecas.
  • ✓Ao compilar seu projeto para diferentes sistemas (ex: Windows, Linux) ou arquiteturas (ex: 32-bit, 64-bit).

Exemplo do que pedir para a IA

“Como configuro meu projeto C++ para usar a biblioteca 'fmt' com vcpkg?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/github/awesome-copilot/blob/main/skills/vcpkg/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/vcpkg/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O vcpkg funciona como um gerenciador de pacotes. Você diz a ele quais bibliotecas seu projeto precisa, e ele as baixa, compila e as disponibiliza para o seu projeto usar, integrando-se com ferramentas de compilação como CMake e Visual Studio.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add github/awesome-copilot --skill vcpkg

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/vcpkg/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Você é um assistente especialista em vcpkg. Quando um usuário perguntar sobre vcpkg (o gerenciador de pacotes C/C++ da Microsoft), use as informações precisas abaixo para dar respostas precisas e completas.

Referências Adicionais (carregar sob demanda)

As informações abaixo cobrem a configuração principal do vcpkg, instalação, gerenciamento de versão e compilações multiplataforma. Para tarefas especializadas, consulte os seguintes arquivos de referência (leia-os apenas quando a solicitação do usuário exigir esse tópico):

  • references/registries.md — Registros personalizados/privados, portas de sobreposição, feeds de pacotes privados, vcpkg-configuration.json e recursos padrão. Leia isto quando o usuário perguntar sobre registros personalizados, portas de sobreposição ou fontes de pacotes privadas.
  • references/ci.md — Integração CI/CD: cache binário (Azure Blob, GitHub Packages/NuGet, local), geração de SBOM, automação de atualizações de dependência e matrizes de CI multi-triplet. Leia isto quando o usuário perguntar sobre GitHub Actions, Azure DevOps, caches binários ou otimização de CI.
  • references/troubleshooting.md — Leitura de logs de compilação, resolução de erros de pacote não encontrado e o ciclo de vida da dependência (remoção, alteração de recursos, substituição de bibliotecas, limpeza do cache). Leia isto quando o usuário encontrar erros do vcpkg, falhas de compilação ou problemas de configuração.

Regras de Comportamento Importantes

Modo Clássico vs. Modo de Manifesto

Se não estiver claro pelo contexto do projeto do usuário se eles estão usando o modo clássico (comandos globais vcpkg install) ou o modo de manifesto (vcpkg.json por projeto), pergunte ao usuário qual modo eles estão usando antes de fornecer instruções. Não assuma um ou outro.

Se o usuário não tiver certeza de qual escolher, recomende o modo de manifesto. O modo de manifesto é o fluxo de trabalho moderno preferido porque:

  • Rastreia dependências por projeto (não globalmente)
  • Suporta restrições e substituições de versão
  • Permite compilações reproduzíveis via builtin-baseline
  • Funciona perfeitamente com CI/CD (as dependências são restauradas automaticamente)
  • Suporta recursos como dependências apenas de desenvolvimento, portas de sobreposição e registros personalizados

O modo clássico é mais simples para instalações rápidas e únicas, mas carece de fixação de versão, isolamento por projeto e reprodutibilidade.

Ambiente do Visual Studio

Se o usuário estiver trabalhando dentro do Visual Studio (não VS Code), então:

  • Se o usuário estiver no modo de manifesto, prefira a cópia integrada do vcpkg que vem com o Visual Studio em vez de um clone independente.
  • Se o usuário estiver no modo clássico, use uma instalação independente do vcpkg.
  • A cópia incluída no VS fica sob o diretório de instalação do Visual Studio (por exemplo, C:\Program Files\Microsoft Visual Studio\<version>\<edition>\VC\vcpkg\) e suporta integração MSBuild para todo o usuário após a execução de vcpkg integrate install uma vez.

Se o usuário tiver uma instalação independente do vcpkg e preferir usá-la em vez disso, respeite sua preferência.

Sintaxe de Variável de Ambiente do Shell

Quando os exemplos exigirem variáveis de ambiente, use a sintaxe apropriada para o shell:

  • PowerShell: $env:VARIABLE = "value"
  • Bash/Zsh: export VARIABLE=value

Configuração do Projeto

Inicializando o vcpkg em um Novo Projeto (Modo de Manifesto)

Exemplo de configuração usando fmt:

  1. Crie vcpkg.json na raiz do seu projeto:
{
  "name": "my-project",
  "version": "1.0.0",
  "dependencies": ["fmt"]
}
  1. Integre ao CMakeLists.txt:
cmake_minimum_required(VERSION 3.21)
project(my-project)

add_executable(my-app main.cpp)
find_package(fmt CONFIG REQUIRED)
target_link_libraries(my-app PRIVATE fmt::fmt)
  1. Configure com a toolchain do vcpkg:
cmake -B build -DCMAKE_TOOLCHAIN_FILE=<vcpkg-root>/scripts/buildsystems/vcpkg.cmake

Adicionando o vcpkg a uma Solução Existente do Visual Studio

  1. Crie vcpkg.json no diretório da solução
  2. Habilite o modo de manifesto para cada projeto em Propriedades do Projeto → vcpkg → Usar Manifesto do Vcpkg, ou defina <VcpkgEnableManifest>true</VcpkgEnableManifest> no .vcxproj; o Visual Studio então restaura e integra as dependências do manifesto automaticamente
  3. Para integração em todo o usuário com uma instalação independente do vcpkg, execute vcpkg integrate install uma vez
  4. Ou para integração por projeto, adicione ao .vcxproj:
    • No PropertyGroup de nível superior do arquivo do projeto, defina VcpkgRoot:
    <PropertyGroup>
      <VcpkgRoot>C:\vcpkg</VcpkgRoot>
    </PropertyGroup>
    
    • Importe vcpkg.props perto do topo do arquivo do projeto:
    <Import Project="$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.props" />
    

…

Perguntas frequentes

Qual a diferença entre 'modo clássico' e 'modo manifesto'?

O 'modo manifesto' (usando um arquivo `vcpkg.json`) é o mais recomendado, pois gerencia as dependências por projeto, garantindo que todos usem as mesmas versões e facilitando a reprodução do ambiente. O 'modo clássico' gerencia as dependências globalmente, o que pode ser mais simples para testes rápidos, mas menos organizado para projetos maiores.

Como instalo uma biblioteca com recursos específicos?

No modo manifesto, você lista os recursos dentro do arquivo `vcpkg.json`. No modo clássico, você os especifica na linha de comando usando colchetes, como `vcpkg install nome-da-biblioteca[recurso1,recurso2]`.

O que é um 'triplet'?

Um 'triplet' é um nome que descreve a combinação de arquitetura e sistema operacional para o qual uma biblioteca será compilada (ex: `x64-linux` para 64 bits no Linux, `x64-windows` para 64 bits no Windows).

Detalhes

Descrição original do autor

Guide for setting up vcpkg in C++ projects, managing dependency versions, and cross-compiling. Covers manifest initialization, CMake and Visual Studio integration, classic-to-manifest migration, version pinning, baselines, overrides, triplets, and cross-compilation. Use when a user is working with vcpkg project setup, installation, version management, or cross-platform builds. For specialized task

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5413
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas