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
Mensagem pronta para colar
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 vcpkgOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/vcpkg/SKILL.md -o SKILL.mdConteú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.jsone 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 devcpkg integrate installuma 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:
- Crie
vcpkg.jsonna raiz do seu projeto:
{
"name": "my-project",
"version": "1.0.0",
"dependencies": ["fmt"]
}
- 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)
- 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
- Crie
vcpkg.jsonno diretório da solução - 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 - Para integração em todo o usuário com uma instalação independente do vcpkg, execute
vcpkg integrate installuma vez - Ou para integração por projeto, adicione ao
.vcxproj:- No
PropertyGroupde nível superior do arquivo do projeto, definaVcpkgRoot:
<PropertyGroup> <VcpkgRoot>C:\vcpkg</VcpkgRoot> </PropertyGroup>- Importe
vcpkg.propsperto do topo do arquivo do projeto:
<Import Project="$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.props" /> - No
…
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
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC