Como configurar um ambiente de desenvolvimento em C++

Neste tutorial, mostramos como preparar sua máquina local para o desenvolvimento em C++ , incluindo o desenvolvimento de aplicativos em C++ executados no Google Cloud.

Se você já tiver um ambiente de desenvolvimento configurado, consulte C++ e Google Cloud para uma visão geral de como executar aplicativos em C++ no Google Cloud.

Objetivos

Instalar o C++

As instruções de instalação do C++ variam de acordo com o sistema operacional. Siga o guia do sistema operacional que você está executando no ambiente de desenvolvimento, seja macOS, Windows ou Linux.

macOS

  1. Você pode acessar um compilador C++ instalando as ferramentas de linha de comando do Xcode.

    xcode-select --install
    
  2. Após a instalação, verifique se o compilador está disponível como c++:

    c++ --version
    

Windows

  1. Para instalar um compilador C++ em um ambiente Windows, faça o download do "Visual Studio" da Microsoft no site do Visual Studio. Isso fará o download de um IDE completo, incluindo um editor, depurador e sistemas de build.

  2. Para acessar o compilador C++, siga a seção C++ no guia de introdução do Visual Studio.

Linux

A maioria das distribuições Linux (se não todas) inclui GCC como o principal compilador C++. Muitas distribuições Linux também incluem CLang como um compilador C++ alternativo. As bibliotecas de cliente C++ oferecem suporte aos dois.

  1. Para instalar o C++ em um ambiente Linux, instale os pacotes apropriados para sua distribuição. Para Debian e Ubuntu, esse pacote é g++.

    Instale esses pacotes usando os seguintes comandos:

    sudo apt update
    sudo apt install g++
    
  2. Após a instalação, verifique se você tem o g++ instalado:

    g++ --version
    

Instalar um sistema de build C++ compatível com o Google Cloud

Para usar o C++ de maneira eficaz, você precisa de um sistema de build e um gerenciador de pacotes que ofereçam suporte às bibliotecas de cliente do Cloud para C++. As bibliotecas de cliente oferecem suporte a vários sistemas de build e gerenciadores de pacotes.

CMake com vcpkg

  1. Seu sistema operacional pode fornecer pacotes para CMake instalado. Se não, instale-o na página de download do CMake

  2. Para instalar o vcpkg, consulte Introdução ao vcpkg

CMake com Conda

  1. Seu sistema operacional pode fornecer pacotes para CMake instalado. Se não, instale-o na página de download do CMake

  2. Para instalar o Conda, consulte a seção Instalação no Guia do usuário do Conda.

Bazel

  1. Para instalar o Bazel, consulte Instalar o Bazel

Outro

Se você precisar usar um sistema de build ou gerenciador de pacotes diferente, o repositório de bibliotecas de cliente C++ inclui instruções para criar a partir da origem.

Instalar um editor

Há muitos editores e IDEs com suporte a C++. Escolha um que atenda às suas necessidades. Considere estes recursos ao fazer sua seleção:

  • Recursos de depuração totalmente integrados
  • Destaque de sintaxe
  • Preenchimento de código

Instalar a Google Cloud CLI

A Google Cloud CLI é um conjunto de ferramentas para Google Cloud. Ela contém as gcloud e as bq ferramentas de linha de comando usadas para acessar o Compute Engine, o Cloud Storage, o BigQuery e outros serviços pela linha de comando. Execute essas ferramentas de maneira interativa ou nos scripts automatizados.

Instalar as bibliotecas de cliente do Cloud para C++

As bibliotecas de cliente do Cloud para C++ são a maneira idiomática para os desenvolvedores de C++ se integrarem a Google Cloud serviços como o Spanner e o Cloud Storage.

Por exemplo, para instalar o pacote de uma API individual, como a API Storage do Cloud, faça o seguinte:

CMake com vcpkg

  1. Adicione google-cloud-cpp como dependência ao arquivo vcpkg.json:

    {
        "name": "setup-cpp-vcpkg",
        "version-string": "unversioned",
        "description": "Setting up C++ for Google Cloud with CMake and vcpkg",
        "dependencies": [
            {"name": "google-cloud-cpp", "default-features": false, "features": ["storage"]}
        ]
    }
    
  2. Edite o arquivo CMakeLists.txt para exigir a biblioteca

    find_package(google_cloud_cpp_storage REQUIRED)
  3. Adicione essa dependência aos seus destinos

    target_link_libraries(hello_world PUBLIC google-cloud-cpp::storage)
  4. Configure o CMake usando o conjunto de ferramentas vcpkg. Isso fará o download e a compilação automática de google-cloud-cpp e das dependências dele.

    cmake -S . -B [build directory] \
        -DCMAKE_TOOLCHAIN_FILE=[vcpkg location]/scripts/buildsystems/vcpkg.cmake
    

CMake com Conda

  1. Instale as dependências usando o Conda:

    conda config --add channels conda-forge
    conda config --set channel_priority strict
    conda install -y -c conda-forge cmake ninja cxx-compiler google-cloud-cpp libgoogle-cloud
  2. Edite o arquivo CMakeLists.txt para exigir a biblioteca

    find_package(google_cloud_cpp_storage REQUIRED)
  3. Adicione essa dependência aos seus destinos

    target_link_libraries(hello_world PUBLIC google-cloud-cpp::storage)
  4. Configure o CMake no ambiente Conda.

    cmake -S . -B [build directory]
    

Bazel

  1. No arquivo WORKSPACE, adicione o comando a seguir para fazer o download do código-fonte das bibliotecas de cliente do Cloud para C++:

    load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
    
    http_archive(
        name = "google_cloud_cpp",
        sha256 = "db69dd73ef4af8b2e816d80ded04950036d0e0dccc274f8c3d3ed1d7f5692a1b",
        strip_prefix = "google-cloud-cpp-2.32.0",
        url = "https://github.com/googleapis/google-cloud-cpp/archive/v2.32.0.tar.gz",
    )
  2. No arquivo WORKSPACE, chame as funções Starlark para carregar dependências recursivas:

    load("@google_cloud_cpp//bazel:workspace0.bzl", "gl_cpp_workspace0")
    
    gl_cpp_workspace0()
    
    load("@google_cloud_cpp//bazel:workspace1.bzl", "gl_cpp_workspace1")
    
    gl_cpp_workspace1()
    
    load("@google_cloud_cpp//bazel:workspace2.bzl", "gl_cpp_workspace2")
    
    gl_cpp_workspace2()
    
    load("@google_cloud_cpp//bazel:workspace3.bzl", "gl_cpp_workspace3")
    
    gl_cpp_workspace3()
    
    load("@google_cloud_cpp//bazel:workspace4.bzl", "gl_cpp_workspace4")
    
    gl_cpp_workspace4()
    
    load("@google_cloud_cpp//bazel:workspace5.bzl", "gl_cpp_workspace5")
    
    gl_cpp_workspace5()
  3. No arquivo BUILD, use a biblioteca do Cloud Storage:

    cc_binary(
        name = "hello_world",
        srcs = ["hello_world.cc"],
        deps = ["@google_cloud_cpp//:storage"],
    )

Configurar a autenticação

Para usar as bibliotecas de cliente do Cloud em um ambiente de desenvolvimento local, configure o Application Default Credentials.

Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:

gcloud auth application-default login

Não é necessário fazer isso se você estiver usando o Cloud Shell.

Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.

Para mais informações, consulte Autenticar para usar bibliotecas de cliente.

A seguir