设置 C++ 开发环境

本教程介绍如何为 C++ 开发(包括开发在 Google Cloud上运行的 C++ 应用)准备本地机器。

如果您已经设置了开发环境,请参阅 C++ 和 Google Cloud ,大致了解如何在 Google Cloud上运行 C++ 应用。

目标

  • 安装与 Google Cloud 兼容的受支持 C++ 版本
  • 安装 C++ 构建系统。
  • 安装编辑器(可选)。
  • 安装 Google Cloud CLI(可选)。
  • 安装 C++ 版 Cloud 客户端库(可选)。
  • 设置身份验证。

安装 C++

C++ 的安装说明因操作系统而异。您可以按照您在开发环境中所用的操作系统(macOS、Windows 或 Linux)的相应指南安装 C++。

macOS

  1. 您可以通过安装 Xcode 的命令行工具来获取 C++ 编译器。

    xcode-select --install
    
  2. 安装完成后,验证您的编译器是否 以 c++ 形式提供:

    c++ --version
    

Windows

  1. 如需在 Windows 环境中安装 C++ 编译器,请从 Visual Studio 网站下载 Microsoft 的“Visual Studio”。 这将下载完整的 IDE,包括编辑器、调试器和构建系统。

  2. 如需访问 C++ 编译器,请按照 Visual Studio 的 使用入门 指南中的 C++ 部分进行操作。

Linux

大多数(如果不是全部)Linux 发行版都将 GCC 作为其主要的 C++ 编译器。许多 Linux 发行版还包含 CLang 作为替代 C++ 编译器。C++ 客户端库同时支持这两种编译器。

  1. 如需在 Linux 环境中安装 C++,请为您的发行版安装相应的软件包。对于 Debian 和 Ubuntu,此软件包为 g++

    使用以下命令安装这些软件包:

    sudo apt update
    sudo apt install g++
    
  2. 安装完成后,验证您是否已安装 g++

    g++ --version
    

安装与 Google Cloud 兼容的 C++ 构建系统

如需有效地使用 C++,您需要一个支持 C++ 版 Cloud 客户端库的构建系统和软件包管理器。客户端库支持多个 此类构建系统和软件包管理器。

CMake with vcpkg

  1. 您的操作系统可能会提供用于 CMake 的 软件包。如果没有,请从 CMake 下载页面安装

  2. 如需安装 vcpkg,请参阅 vcpkg 使用入门

CMake with Conda

  1. 您的操作系统可能会提供用于 CMake 的 软件包。如果没有,请从 CMake 下载页面安装

  2. 如需安装 Conda,请参阅 Conda 用户指南中的 安装部分

Bazel

  1. 如需安装 Bazel,请参阅 安装 Bazel

其他

如果您需要使用其他构建系统或软件包管理器,C++ 客户端 库代码库包含从 源代码进行构建的说明

安装编辑器

有许多 编辑器和 IDE 支持 C++。选择一个适合您需求的编辑器。在选择时,请考虑以下功能:

  • 全面集成的调试功能
  • 语法突出显示
  • 代码补全

安装 Google Cloud CLI

Google Cloud CLI 是一套适用于 的工具 Google Cloud. 其中包含 gcloudbq 命令行工具,可用于通过命令行访问 Compute Engine、Cloud Storage、 BigQuery 和其他服务。这些工具既能以交互方式使用,也可以在自动化脚本中运行。

安装 C++ 版 Cloud 客户端库

C++ 版 Cloud 客户端库 是 C++ 开发者将应用与 Google Cloud Spanner 和 Cloud Storage 等服务集成时采取的惯用方式。

例如,如需为单个 API(例如 Cloud Storage API)安装软件包,请执行以下操作:

CMake with vcpkg

  1. google-cloud-cpp 作为依赖项添加到 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. 修改 CMakeLists.txt 文件以要求使用该库

    find_package(google_cloud_cpp_storage REQUIRED)
  3. 将此依赖项添加到目标中

    target_link_libraries(hello_world PUBLIC google-cloud-cpp::storage)
  4. 使用 vcpkg 工具链配置 CMake。这将自动下载并编译 google-cloud-cpp 及其依赖项。

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

CMake with Conda

  1. 使用 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. 修改 CMakeLists.txt 文件以要求使用该库

    find_package(google_cloud_cpp_storage REQUIRED)
  3. 将此依赖项添加到目标中

    target_link_libraries(hello_world PUBLIC google-cloud-cpp::storage)
  4. 在 Conda 环境中配置 CMake。

    cmake -S . -B [build directory]
    

Bazel

  1. WORKSPACE 文件中,添加以下命令来下载 C++ 版 Cloud 客户端库源代码:

    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. WORKSPACE 文件中,调用 Starlark 函数来加载递归依赖项:

    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. BUILD 文件中使用 Cloud Storage 库:

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

设置身份验证

如需在本地开发环境中使用 Cloud 客户端库,请设置应用默认凭据。

如果您使用的是本地 shell,请为您的用户 账号创建本地身份验证凭据:

gcloud auth application-default login

如果您使用的是 Cloud Shell,则无需执行此操作。

如果返回了身份验证错误,并且您使用的是外部身份提供方 (IdP),请确认您已 使用联合身份登录 gcloud CLI

如需了解详情,请参阅 使用客户端库时进行身份验证

后续步骤