Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tutorial mostra como criar um programa C++ "Hello World" que usa a fmt biblioteca com CMake, vcpkg e Visual Studio. Você instalará dependências, configurará, compilará e executará um aplicativo simples.
Pré-requisitos
- Visual Studio com carga de trabalho de desenvolvimento C++ e componente CMake
- Git
1 - Configurar o vcpkg
Clonar o repositório
A primeira etapa é clonar o repositório vcpkg do GitHub. O repositório contém scripts para adquirir o executável vcpkg e um registro de bibliotecas de código aberto selecionadas mantidas pela comunidade vcpkg. Para fazer isso, execute:
git clone https://github.com/microsoft/vcpkg.gitO registro com curadoria vcpkg é um conjunto de mais de 2.000 bibliotecas de código aberto. Essas bibliotecas foram validadas pelos pipelines de integração contínua do vcpkg para trabalharem juntas. Embora o repositório vcpkg não contenha o código-fonte dessas bibliotecas, ele contém receitas e metadados para compilá-los e instalá-los em seu sistema.
Executar o script de bootstrap
Agora que você clonou o repositório vcpkg, navegue até o
vcpkgdiretório e execute o script de bootstrap:cd vcpkg && bootstrap-vcpkg.batcd vcpkg; .\bootstrap-vcpkg.batcd vcpkg && ./bootstrap-vcpkg.shO script de bootstrap executa verificações de pré-requisitos e baixa o executável vcpkg.
É isso! vcpkg está configurado e pronto para uso.
2 – Configurar o projeto do Visual Studio
Criar o projeto do Visual Studio
- Criar um novo projeto no Visual Studio usando o modelo "Projeto CMake"
Captura de tela da interface do usuário do Visual Studio para mostrar como criar um novo projeto do CMake no Visual Studio
- Nomeie seu projeto como "helloworld"
- Marque a caixa "Colocar solução e projeto no mesmo diretório".
- Clique no botão "Criar"
Captura de tela da interface do usuário do Visual Studio para nomear seu projeto CMake e clicar no botão "criar".
Configurar as
VCPKG_ROOTvariáveis de ambiente.Observação
Definir variáveis de ambiente dessa maneira afeta apenas a sessão de terminal atual. Para tornar essas alterações permanentes em todas as sessões, defina-as por meio do painel Variáveis de Ambiente do Sistema do Windows.
Abra a janela interna do PowerShell do desenvolvedor no Visual Studio.
Captura de tela da interface do usuário do Visual Studio para a janela interna do desenvolvedor do PowerShell
Execute os comandos a seguir:
$env:VCPKG_ROOT="C:\path\to\vcpkg" $env:PATH="$env:VCPKG_ROOT;$env:PATH"
Captura de tela da interface do usuário do Visual Studio para a janela interna do desenvolvedor do PowerShell mostrando como configurar VCPKG_ROOT e adicioná-lo ao PATH.
Abra o prompt de comando do desenvolvedor no Visual Studio.
Captura de tela da interface do usuário do Visual Studio para o prompt de comando do desenvolvedor.
Execute os comandos a seguir:
set "VCPKG_ROOT=C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH%
Captura de tela do prompt de comando do desenvolvedor do Visual Studio mostrando como configurar VCPKG_ROOT e adicioná-lo ao PATH.
A configuração
VCPKG_ROOTajuda o Visual Studio a localizar sua instância vcpkg. Adicioná-lo garantePATHque você possa executar comandos vcpkg diretamente do shell.Gere um arquivo de manifesto e adicione dependências.
Execute o seguinte comando para criar um arquivo de manifesto vcpkg (
vcpkg.json):vcpkg new --applicationO
vcpkg newcomando adiciona umvcpkg.jsonarquivo e umvcpkg-configuration.jsonarquivo no diretório do projeto.Adicione o
fmtpacote como uma dependência:vcpkg add port fmtAgora você
vcpkg.jsondeve conter:{ "dependencies": [ "fmt" ] }Este é o seu arquivo de manifesto. O vcpkg lê o arquivo de manifesto para saber quais dependências instalar e se integra ao CMake para fornecer as dependências exigidas pelo seu projeto.
O arquivo gerado
vcpkg-configuration.jsonintroduz uma linha de base que coloca restrições mínimas de versão nas dependências do projeto. Modificar esse arquivo está além do escopo deste tutorial. Embora não seja aplicável neste tutorial, é uma boa prática manter o arquivo sob controle do código-fonte para garantir avcpkg-configuration.jsonconsistência da versão em diferentes ambientes de desenvolvimento.
3 - Configure os arquivos do projeto
Modifique o arquivo
helloworld.cpp.Substitua o conteúdo de
helloworld.cpppelo seguinte código:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }Este arquivo de origem inclui o
<fmt/core.h>cabeçalho que faz parte dafmtbiblioteca. Amain()função chamafmt::print()para gerar a mensagem "Hello World!" para o console.Configure o
CMakePresets.jsonarquivo.O CMake pode vincular automaticamente as bibliotecas instaladas pelo vcpkg quando
CMAKE_TOOLCHAIN_FILEestiver configurado para usar a cadeia de ferramentas personalizada do vcpkg. Isso pode ser feito usando arquivos de predefinições do CMake.Modifique
CMakePresets.jsonpara corresponder ao conteúdo abaixo:{ "version": 2, "configurePresets": [ { "name": "vcpkg", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" } } ] }Crie
CMakeUserPresets.jsoncom o seguinte conteúdo:{ "version": 2, "configurePresets": [ { "name": "default", "inherits": "vcpkg", "environment": { "VCPKG_ROOT": "<path to vcpkg>" } } ] }O
CMakePresets.jsonarquivo contém uma única predefinição chamada "vcpkg", que define aCMAKE_TOOLCHAIN_FILEvariável. OCMakeUserPresets.jsonarquivo define aVCPKG_ROOTvariável de ambiente para apontar para o caminho absoluto que contém a instalação local do vcpkg. É recomendável não fazer check-inCMakeUserPresets.jsonem sistemas de controle de versão.Edite o arquivo
CMakeLists.txt.Substitua o conteúdo do arquivo
CMakeLists.txtpelo seguinte código:cmake_minimum_required(VERSION 3.10) project(HelloWorld) find_package(fmt CONFIG REQUIRED) add_executable(HelloWorld helloworld.cpp) target_link_libraries(HelloWorld PRIVATE fmt::fmt)Agora, vamos detalhar o que cada linha do
CMakeLists.txtarquivo faz:-
cmake_minimum_required(VERSION 3.10): especifica que a versão mínima do CMake necessária para criar o projeto é 3.10. Se a versão do CMake instalada em seu sistema for inferior a isso, a compilação falhará. -
project(HelloWorld): Define o nome do projeto como "HelloWorld". -
find_package(fmt CONFIG REQUIRED): Procura a biblioteca usando seufmtarquivo de configuração do CMake. AREQUIREDpalavra-chave garante que um erro seja gerado se o pacote não for encontrado. -
add_executable(HelloWorld helloworld.cpp): Adiciona um destino executável chamado "HelloWorld", criado a partir do arquivohelloworld.cppde origem. -
target_link_libraries(HelloWorld PRIVATE fmt::fmt): Especifica que oHelloWorldexecutável deve ser vinculado àfmtbiblioteca. APRIVATEpalavra-chave indica quefmté necessário apenas para a construçãoHelloWorlde não deve ser propagado para outros projetos dependentes.
-
4 - Construa e execute o projeto
Compile o projeto.
Crie o projeto usando a opção
Build > Build Allno menu superior.Execute o aplicativo.
Por fim, execute o executável:
Captura de tela da interface do usuário do Visual Studio para executar o executável.
Você deverá ver a saída:
Captura de tela das saídas do programa - "Hello World!"
Próximas etapas
Para saber mais sobre o vcpkg.json, consulte nossa documentação de referência: