C++ 開発環境の設定

このチュートリアルでは、 Google Cloudで動作する C++ アプリの開発など、C++ 開発用にローカルマシンを準備する方法を説明します。

開発環境がすでに設定されている場合は、C++ と Google Cloud を参照して、 Google Cloudで C++ アプリを実行する方法の概要を確認してください。

目標

  • Google Cloud と互換性のあるサポートされているバージョンの C++ をインストールします。
  • C++ ビルドシステムをインストールします。
  • エディタのインストール(省略可)
  • Google Cloud CLI をインストールします(省略可)。
  • C++ 用の Cloud クライアント ライブラリをインストールします(省略可)。
  • 認証を設定します。

C++ のインストール

C++ のインストール手順は、オペレーティング システムによって異なります。開発環境で実行しているオペレーティング システム(macOS、Windows、Linux)のガイドに従ってください。

macOS

  1. C++ コンパイラは、Xcode のコマンドライン ツールをインストールすることで入手できます。

    xcode-select --install
    
  2. インストールが完了したら、コンパイラが c++ として使用可能であることを確認します。

    c++ --version
    

Windows

  1. Windows 環境に C++ コンパイラをインストールするには、Visual Studio のウェブサイトから Microsoft の「Visual Studio」をダウンロードします。これにより、エディタ、デバッガ、ビルドシステムを含む完全な IDE がダウンロードされます。

  2. C++ コンパイラにアクセスするには、Visual Studio のスタートガイドの C++ セクションをご覧ください。

Linux

ほとんどの(すべてではない)Linux ディストリビューションには、プライマリ C++ コンパイラとして GCC が含まれています。多くの Linux ディストリビューションには、代替の C++ コンパイラとして CLang も含まれています。C++ クライアント ライブラリは両方をサポートしています。

  1. C++ を Linux 環境にインストールするには、ご使用のディストリビューションに適したパッケージをインストールしてください。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 のスタートガイドをご覧ください。

Conda の CMake

  1. オペレーティング システムには、CMake がインストールされているパッケージが用意されています。インストールされていない場合は、CMake ダウンロード ページからインストールしてください。

  2. Conda をインストールするには、Conda のユーザーガイドのインストール セクションをご覧ください。

Bazel

  1. Bazel をインストールするには、Bazel のインストールをご覧ください。

その他

別のビルドシステムまたはパッケージ マネージャーを使用する必要がある場合は、C++ クライアント ライブラリ リポジトリにソースからビルドする手順が含まれています。

エディタのインストール

C++ をサポートするエディタと IDE は多数あります。ニーズに合うものを選択してください。選択する際は、次の機能を考慮してください。

  • 完全に統合されたデバッグ機能
  • 構文のハイライト表示
  • コード補完

Google Cloud CLI をインストールする

Google Cloud CLI は、 Google Cloudのための一連のツールです。これには、コマンドラインから Compute Engine、Cloud Storage、BigQuery、その他のサービスにアクセスするために使用される gcloudbq といったコマンドライン ツールが含まれます。これらのツールはインタラクティブに実行することも、自動スクリプトで実行することもできます。

C++ 用 Cloud クライアント ライブラリをインストールする

C++ 用 Cloud クライアント ライブラリは、C++ デベロッパーが Spanner や Cloud Storage などのGoogle Cloud サービスと統合するための慣用的な方法です。

たとえば、Cloud Storage API などの個々の 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
    

Conda の CMake

  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 クライアント ライブラリを使用するには、アプリケーションのデフォルト認証情報を設定します。

ローカルシェルを使用している場合は、ユーザー アカウントのローカル認証情報を作成します。

gcloud auth application-default login

Cloud Shell を使用している場合は、この操作を行う必要はありません。

認証エラーが返され、外部 ID プロバイダ(IdP)を使用している場合は、 連携 ID を使用して gcloud CLI にログインしていることを確認します。

詳細については、クライアント ライブラリを使用して認証するをご覧ください。

次のステップ