Compartilhar via


Tutorial: Instalar e usar pacotes com o CMake no Visual Studio Code

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

1 - Configurar o vcpkg

  1. 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.git
    

    O 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.

  2. Executar o script de bootstrap

    Agora que você clonou o repositório vcpkg, navegue até o vcpkg diretório e execute o script de bootstrap:

    cd vcpkg && bootstrap-vcpkg.bat
    
    cd vcpkg; .\bootstrap-vcpkg.bat
    
    cd vcpkg && ./bootstrap-vcpkg.sh
    

    O script de bootstrap executa verificações de pré-requisitos e baixa o executável vcpkg.

    É isso! vcpkg está configurado e pronto para uso.

2 - Crie uma pasta de projeto

Observação

Se você estiver executando este tutorial no Windows e usando o MSVC como compilador, precisará iniciar a instância do Visual Studio Code em um Prompt de Comando do Desenvolvedor para VS ou PowerShell do Desenvolvedor para VS. Isso garante que o caminho do compilador e outras variáveis de ambiente sejam configurados corretamente.

Crie uma pasta para manter 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 – Instale extensões de código do Visual Studio

Navegue até o modo de exibição Extensão e instale a Extensão C++. Isso habilita o C++ IntelliSense e a navegação de código.

instalando a extensão de código do Visual Studio em C++

Captura de tela do modo de exibição da Extensão do Visual Studio Code com a Extensão C++

Instale a extensão de ferramentas do CMake. Isso habilita o suporte ao CMake no Visual Studio Code.

instalando as ferramentas do CMake Extensão de código do Visual Studio

Captura de tela do modo de exibição da Extensão do Visual Studio Code com a Extensão de Ferramentas do CMake

4 - Configurar variáveis de ambiente

  1. Configure a VCPKG_ROOT variável de ambiente.

Abra um novo Terminal no Visual Studio Code: Terminal > Novo Terminal

Execute os comandos a seguir:

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.

$env:VCPKG_ROOT="C:\path\to\vcpkg"
$env:PATH="$env:VCPKG_ROOT;$env:PATH"

Configurando variáveis de ambiente VCPKG

Captura de tela da configuração do VCPKG_ROOT e adicioná-lo ao PATH em um terminal do Visual Studio Code.

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.

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.

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 atual do shell. Para tornar essa alteração permanente entre as 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 garante PATH que você possa executar comandos vcpkg diretamente do shell.

  1. 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

Agora você vcpkg.json deve 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 MSBuild 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 vcpkg-configuration.json consistência da versão em diferentes ambientes de desenvolvimento.

5 - Configure os arquivos do projeto

  1. Criar o CMakeLists.txt arquivo

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 cada linha no CMakeLists.txt arquivo:

  • 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, um erro será gerado.
  • project(HelloWorld): Define o nome do projeto como "HelloWorld".
  • find_package(fmt CONFIG REQUIRED): Procura a biblioteca usando seu fmt arquivo de configuração do CMake. A REQUIRED palavra-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 arquivo helloworld.cppde origem.
  • target_link_libraries(HelloWorld PRIVATE fmt::fmt): Especifica que o HelloWorld executável deve ser vinculado à fmt biblioteca. A PRIVATE palavra-chave indica que fmt é necessário apenas para a construção HelloWorld e não deve ser propagado para outros projetos dependentes.
  1. Crie o helloworld.cpp arquivo com o seguinte conteúdo:
#include <fmt/core.h>

int main()
{
    fmt::print("Hello World!\n");
    return 0;
}

helloworld.cpp Neste arquivo, o <fmt/core.h> cabeçalho é incluído para usar a fmt biblioteca. Em seguida, a main() função chama fmt::print() para gerar 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 arquivo da vcpkg.cmake cadeia de ferramentas. 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"
      }
    }
  ]
}
  1. Crie CMakeUserPresets.json um arquivo no diretório "helloworld" com o seguinte conteúdo:
{
    "version": 2,
    "configurePresets": [
      {
        "name": "default",
        "inherits": "vcpkg",
        "environment": {
          "VCPKG_ROOT": "<path to vcpkg>"
        }
      }
    ]
  }

Esse CMakePresets.json arquivo contém uma única predefinição "vcpkg" para o 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. Only CMakePresets.json deve ser verificado no controle do código-fonte enquanto CMakeUserPresets.json deve ser usado localmente.

6 - Construa e execute o projeto

  1. Execute o CMake: Build comando do projeto navegando até a Paleta de comandos na Paleta de comandos da vista >

Comando de compilação do CMake no Visual Studio Code

Captura de tela da seleção do comando de compilação do CMake no Visual Studio Code.

Selecione a predefinição CMake default . Isso habilita o conjunto de ferramentas vcpkg.

Selecionando predefinição no comando de compilação do CMake no Visual Studio Code

Captura de tela da seleção da predefinição no comando de build do CMake no Visual Studio Code.

  1. Inicie o projeto

Execute o programa:

./build/HelloWorld.exe
./build/HelloWorld

Você deverá ver a saída:

Hello World!

Próximas etapas

Para saber mais sobre o vcpkg.json, consulte nossa documentação de referência: