设置 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)中运行的操作系统对应的指南操作。

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++ 客户端库代码库中包含有关从源代码构建的说明。

安装编辑器

很多编辑器和 IDE 都支持 C++。请选择符合您需求的选项。做选择时请考虑以下特征:

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

安装 Google Cloud CLI

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

安装 C++ 版 Cloud 客户端库

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

例如,如需为单个 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 = "63f009092afd900cb812050bcecf607e37d762ac911e0bcbf4af9a432da91890",
        strip_prefix = "google-cloud-cpp-2.19.0",
        url = "https://github.com/googleapis/google-cloud-cpp/archive/v2.19.0.tar.gz",
    )
  2. WORKSPACE 文件中,调用 Starlark 函数以加载递归依赖项:

    load("@google_cloud_cpp//bazel:google_cloud_cpp_deps.bzl", "google_cloud_cpp_deps")
    
    google_cloud_cpp_deps()
    
    load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
    
    switched_rules_by_language(
        name = "com_google_googleapis_imports",
        cc = True,
        grpc = True,
    )
    
    load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
    
    grpc_deps()
    
    load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
    
    grpc_extra_deps()
  3. BUILD 文件中,使用 Cloud Storage 库:

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

设置身份验证

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

为您的 Google 账号创建本地身份验证凭据:

gcloud auth application-default login

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

后续步骤