Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tutorial mostra como criar um programa C++ "Hello World" que usa a fmt biblioteca com CMake, vcpkg e Visual Studio Code. Você instalará dependências, configurará, compilará e executará um aplicativo simples.
Pré-requisitos
- Código do Visual Studio
- Compilador C++
- Windows 7 ou superior
- Git
- Ninja
1 - Configurar vcpkg
Clonar o repositório
O primeiro passo é 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 com curadoria 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 funcionar em conjunto. 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 bootstrap:cd vcpkg && bootstrap-vcpkg.batcd vcpkg; .\bootstrap-vcpkg.batcd vcpkg && ./bootstrap-vcpkg.shO script bootstrap executa verificações de pré-requisitos e baixa o executável vcpkg.
É isso! VCPKG está configurado e pronto para uso.
2 - Criar uma pasta de projeto
Observação
Se você estiver executando este tutorial no Windows e usando o MSVC como seu compilador, precisará iniciar a instância do Visual Studio Code a partir de um prompt de comando do desenvolvedor para VS ou do Developer PowerShell para VS. Isso garante que o caminho do compilador e outras variáveis de ambiente estejam configurados corretamente.
Crie uma pasta para armazenar os arquivos do projeto em um local de sua escolha. Para este tutorial, criamos uma pasta chamada "helloworld". Em seguida, abra a pasta usando o Visual Studio Code.
mkdir helloworld
code helloworld
3 - Instalar extensões de código do Visual Studio
Navegue até a visualização Extensão e instale a Extensão C++. Isso permite o C++ IntelliSense e a navegação de código.
Captura de tela da vista de extensão do Visual Studio Code com extensão para C++
Instale a extensão CMake Tools. Isso habilita o suporte ao CMake no Visual Studio Code.
Captura de ecrã da vista de extensões do Visual Studio Code com a extensão CMake Tools
4 - Configurar variáveis de ambiente
- Configure a
VCPKG_ROOTvariável de ambiente.
Abra um novo Terminal no Visual Studio Code: Terminal > Novo Terminal
Execute os seguintes comandos:
Observação
A configuração de 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 Windows.
$env:VCPKG_ROOT="C:\path\to\vcpkg"
$env:PATH="$env:VCPKG_ROOT;$env:PATH"
Captura de ecrã da configuração de VCPKG_ROOT e a sua adição ao PATH num terminal do Visual Studio Code.
Observação
A configuração de 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 Windows.
Observação
A configuração de 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 Windows.
set "VCPKG_ROOT=C:\path\to\vcpkg"
set PATH=%VCPKG_ROOT%;%PATH%
Observação
A configuração de variáveis de ambiente usando o export comando afeta apenas a sessão de shell atual. Para tornar essa alteração permanente entre sessões, adicione o export comando ao script de perfil do shell (por exemplo, ~/.bashrc ou ~/.zshrc).
export VCPKG_ROOT=/c/path/to/vcpkg
export PATH=$PATH:$VCPKG_ROOT
A configuração VCPKG_ROOT ajuda o Visual Studio Code a localizar sua instância vcpkg.
Adicioná-lo a PATH garante que possas executar comandos vcpkg diretamente a partir do shell.
- Gere um arquivo de manifesto e adicione dependências.
Execute o seguinte comando para criar um arquivo de manifesto vcpkg (vcpkg.json) na raiz da helloworld pasta:
vcpkg new --application
O vcpkg new comando adiciona um vcpkg.json arquivo e um vcpkg-configuration.json arquivo no diretório do projeto.
Adicione o fmt pacote como uma dependência:
vcpkg add port fmt
O seu vcpkg.json deve agora conter:
{
"dependencies": [
"fmt"
]
}
Este é o seu ficheiro de manifesto. vcpkg lê o arquivo de manifesto para saber quais dependências instalar e integra com o CMake para fornecer as dependências exigidas pelo seu projeto.
O arquivo gerado vcpkg-configuration.json introduz 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 a consistência da vcpkg-configuration.json versão em diferentes ambientes de desenvolvimento.
5 - Configurar os arquivos do projeto
- Criar o
CMakeLists.txtficheiro
Crie um novo arquivo nomeado CMakeLists.txt na raiz da pasta do projeto com o seguinte conteúdo:
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)
Vamos detalhar o que há em cada linha do arquivo CMakeLists.txt.
-
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 no seu sistema for inferior a esta, será gerado um erro. -
project(HelloWorld): Define o nome do projeto como "HelloWorld". -
find_package(fmt CONFIG REQUIRED): Procura afmtbiblioteca usando o seu ficheiro 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 se propagar para outros projetos dependentes.
- Crie o
helloworld.cpparquivo com o seguinte conteúdo:
#include <fmt/core.h>
int main()
{
fmt::print("Hello World!\n");
return 0;
}
Neste helloworld.cpp ficheiro, o <fmt/core.h> cabeçalho é incluído para usar a fmt biblioteca. Em seguida, a função main() chama fmt::print() para enviar a mensagem "Hello World!" para o console.
Para permitir que o sistema de projeto CMake reconheça bibliotecas C++ fornecidas pelo vcpkg, você precisará fornecer o vcpkg.cmake arquivo toolchain. Para automatizar isso, crie um CMakePresets.json arquivo no diretório "helloworld" com o seguinte conteúdo:
{
"version": 2,
"configurePresets": [
{
"name": "vcpkg",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
}
]
}
- Crie
CMakeUserPresets.jsonum arquivo no diretório "helloworld" com o seguinte conteúdo:
{
"version": 2,
"configurePresets": [
{
"name": "default",
"inherits": "vcpkg",
"environment": {
"VCPKG_ROOT": "<path to vcpkg>"
}
}
]
}
Este CMakePresets.json arquivo contém uma única predefinição "vcpkg" para CMake e define a CMAKE_TOOLCHAIN_FILE variável. O CMAKE_TOOLCHAIN_FILE permite que o sistema de projeto CMake reconheça bibliotecas C++ fornecidas pelo vcpkg. Apenas CMakePresets.json deve ser verificado no controle do código-fonte enquanto CMakeUserPresets.json deve ser usado localmente.
6 - Construir e executar o projeto
- Execute o comando
CMake: Builddo projeto navegando na Paleta de Comandos em Exibir Paleta de Comandos >
Captura de tela da seleção do comando de compilação CMake no Visual Studio Code.
Selecione a default predefinição CMake. Isso habilita a cadeia de ferramentas vcpkg.
Captura de tela da seleção da predefinição no comando CMake build no Visual Studio Code.
- Lançar o projeto
Execute o programa:
./build/HelloWorld.exe
./build/HelloWorld
Você deve ver a saída:
Hello World!
Próximos passos
Para saber mais sobre vcpkg.json, consulte a nossa documentação de referência.