设置 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)的相应指南安装 Python。

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 客户端库的构建系统和软件包管理系统。该客户端库支持多个此类构建系统和软件包管理系统。

使用 vcpkg 的 CMake

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

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

将 CMake 与 Conda 搭配使用

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

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

Bazel

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

其他

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

安装编辑器

许多编辑器和 IDE 都支持 C++。选择适合您的方案。在选择时,请考虑以下功能:

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

安装 Google Cloud CLI

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

安装 C++ 版 Cloud 客户端库

C++ 开发者集成Google Cloud 服务(例如 Spanner 和 Cloud Storage)的惯用方式是使用 C++ 版 Cloud 客户端库

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

使用 vcpkg 的 CMake

  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 与 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 客户端库,请设置应用默认凭据。

If you're using a local shell, then create local authentication credentials for your user account:

gcloud auth application-default login

You don't need to do this if you're using Cloud Shell.

If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

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

后续步骤