

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ソースコード AWS SDK for C\$1\$1 から を取得する
<a name="sdk-from-source"></a>

コード AWS SDK for C\$1\$1 から を使用するには、まずソースから SDK を構築し、ローカルにインストールします。


**プロセスの概要**  

| 一般的なプロセス  | 詳細なプロセス | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sdk-for-cpp/v1/developer-guide/sdk-from-source.html) |  まずソースから SDK をビルドしてインストールします。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sdk-for-cpp/v1/developer-guide/sdk-from-source.html) | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sdk-for-cpp/v1/developer-guide/sdk-from-source.html) |  その後、SDK を使用して独自のアプリケーションを開発します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sdk-for-cpp/v1/developer-guide/sdk-from-source.html)  | 

# Windows AWS SDK for C\$1\$1 での の構築
<a name="setup-windows"></a>

を設定するには AWS SDK for C\$1\$1、ソースから直接 SDK を構築するか、パッケージマネージャーを使用してライブラリをダウンロードします。



SDK のソースはサービスごとに個別のパッケージに分割されています。SDK 全体のインストールには最大 1 時間かかる場合があります。プログラムで使用する特定のサービスのみをインストールすれば、インストール時間を短縮でき、ディスクのサイズも抑えられます。インストールするサービスを選択するには、プログラムが使用する各サービスのパッケージ名を把握しておく必要があります。パッケージディレクトリのリストは、GitHub の [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp) で確認できます。パッケージ名は、そのサービスのディレクトリ名のサフィックス部分です。

```
aws-sdk-cpp\aws-cpp-sdk-<packageName>   # Repo directory name and packageName
aws-sdk-cpp\aws-cpp-sdk-s3              # Example: Package name is s3
```

## 前提条件
<a name="prerequisites"></a>

大規模な AWS クライアントの一部を構築するには、4 GB 以上の RAM が必要です。SDK は、*t2.micro*、*t2.small* など Amazon EC2 の小規模インスタンスタイプで、メモリ不足のためビルドに失敗する可能性があります。

を使用するには AWS SDK for C\$1\$1、次のいずれかが必要です。
+ Microsoft Visual Studio 2015 以降、
+  GNU Compiler Collection (GCC) 4.9 以降、または 
+  Clang 3.3 以降。

## curl を使用した SDK for Windows のビルド
<a name="build-curl-id"></a>

Windows では、SDK はデフォルトの HTTP クライアントとして [WinHTTP](https://msdn.microsoft.com/en-us/library/windows/desktop/aa382925%28v=vs.85%29.aspx) を使用してビルドされます。ただし、WinHTTP 1.0 は HTTP/2 双方向ストリーミングをサポートしていません。これは、Amazon Transcribe や Amazon Lex AWS のサービス などの一部の で必要です。そのため、SDK に curl サポートを組み込んでビルドすることが必要になる場合があります。curl の使用可能なすべてのダウンロードオプションを確認するには、「[curl Releases and Downloads](https://curl.se/download.html)」を参照してください。curl サポートを組み込んで SDK をビルドする 1 つの方法は次のとおりです。

**curl ライブラリサポートを組み込んで SDK をビルドするには**

1. 「[curl for Windows](https://curl.se/windows/)」にアクセスし、Microsoft Windows 用の curl バイナリパッケージをダウンロードします。

1. パッケージをコンピュータ上のフォルダ (例: `C:\curl`) に解凍します。

1. 「[CA certificates extracted from Mozilla](http://curl.haxx.se/docs/caextract.html)」にアクセスし、`cacert.pem` ファイルをダウンロードします。この Privacy Enhanced Mail (PEM) ファイルには、安全な Web サイトの信頼性を検証するために使用される有効なデジタル証明書のバンドルが含まれています。証明書は GlobalSign や Verisign などの認証局 (CA) 企業によって発行されています。

1. その `cacert.pem` ファイルを、先ほど展開した `bin` サブフォルダ (例: `C:\curl\bin`) に移動します。そのファイルの名前を `curl-ca-bundle.crt` に変更します。

また、以降の手順で Microsoft Build Engine (MSBuild) が curl の `dll` を見つけられる必要があります。そのため、curl の `bin` フォルダパスを Windows の `PATH` 環境変数 (例: `set PATH=%PATH%;C:\curl\bin`) に追加します。SDK をビルドする新しいコマンドプロンプトを開くたびに、この設定を追加する必要があります。あるいは、この設定が記憶されるように、Windows のシステム設定で環境変数をグローバルに設定することもできます。

以降の手順で *SDK をソースからビルドする*際には、ステップ 5 (ビルドファイルの生成) を参照して、curl を組み込むために必要なコマンド構文を確認してください。

コードを書く際には、`caFile` の中で [コード内での AWS SDK for C\$1\$1 サービスクライアントの設定](client-config.md) を証明書ファイルのパスに設定する必要があります。Amazon Transcribe の使用例については、GitHub の [`transcribe-streaming` コードサンプルリポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/transcribe-streaming)で「*AWS *」を参照してください。

## ソースからの SDK のビルド
<a name="setup-windows-from-source"></a>

コマンドラインツールを使用して、ソースから SDK をビルドできます。この方法では、SDK ビルドをカスタマイズできます。使用可能なオプションについては、「[CMake のパラメータ](cmake-params.md)」を参照してください。主なステップは 3 つです。まず、CMake を使用してファイルをビルドします。次に、MSBuild を使用して、オペレーティングシステムとビルドツールチェーンに対応した SDK バイナリをビルドします。最後に、そのバイナリを開発マシン上の適切な場所にインストールまたはコピーします。

**SDK をソースからビルドするには**

1. [CMake](https://cmake.org/) (バージョン 3.13 以上) と、プラットフォームに関連するビルドツールをインストールします。`cmake` を `PATH` に追加することをお勧めします。CMake のバージョンを確認するには、コマンドプロンプトを開き、コマンド **cmake --version** を実行します。

1. コマンドプロンプトで、SDK を保存するフォルダに移動します。

1. 最新のソースコードを取得します。

   バージョン 1.11 では、git サブモジュールを使用して外部依存関係をラップしています。これには、「*AWS SDK とツールのリファレンスガイド*」に記載されている [CRT ライブラリ](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html)が含まれています。

   GitHub の [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp) から SDK ソースをダウンロードまたはクローンします。
   + Git でのクローン: HTTPS

     ```
     git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
     ```
   + Git でのクローン: SSH

     ```
     git clone --recurse-submodules git@github.com:aws/aws-sdk-cpp.git
     ```

1. 生成されたビルドファイルは、SDK ソースディレクトリの外部に保存することをお勧めします。ビルドファイルを保存するための新しいディレクトリを作成し、そのフォルダに移動します。

   ```
   mkdir sdk_build
   cd sdk_build
   ```

1. `cmake` を実行してビルドファイルを生成します。`cmake` コマンドラインで、*デバッグ*バージョンと*リリース*バージョンのどちらをビルドするかを指定します。この手順全体を通して `Debug` を選択し、アプリケーションコードをデバッグ設定で実行します。この手順全体を通して `Release` を選択し、アプリケーションコードをリリース設定で実行します。Windows では、SDK のインストール場所は通常 `\Program Files (x86)\aws-cpp-sdk-all\` です。コマンド構文 

   `{path to cmake if not in PATH} {path to source location of aws-sdk-cpp} -DCMAKE_BUILD_TYPE=[Debug | Release] -DCMAKE_PREFIX_PATH={path to install destination}`

   ビルド出力を変更するその他の方法については、「[CMake のパラメータ](cmake-params.md)」を参照してください。

   ビルドファイルを生成するには、次のいずれかを実行します。
   + **ビルドファイルを生成する (すべて AWS のサービス)**: SDK 全体を構築するには、*デバッグ*バージョンと*リリース*バージョンのどちらを構築するかを指定して cmake を実行します。例えば、次のようになります。

     ```
     cmake "..\aws-sdk-cpp" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="C:\Program Files (x86)\aws-cpp-sdk-all"
     ```

     
   + **ビルドファイルを生成する ( AWS のサービスの一部)**: SDK の特定のサービスまたはサービスパッケージのみをビルドするには、[BUILD\$1ONLY](cmake-params.md#cmake-build-only) パラメータでサービス名をセミコロンで区切って指定して CMake を実行します。次の例では、Amazon S3 サービスパッケージのみをビルドします。

     ```
     cmake ..\aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DBUILD_ONLY="s3" -DCMAKE_PREFIX_PATH="C:\Program Files (x86)\aws-cpp-sdk-all"
     ```
   + **ビルドファイルを生成 (curl 使用)**: curl の前提条件を満たした後、curl サポートを SDK に組み込むには、追加で [FORCE\$1CURL](cmake-params.md#cmake-force-curl)、[CURL\$1INCLUDE\$1DIR](cmake-params.md#cmake-curl-include-dir)、[CURL\$1LIBRARY](cmake-params.md#cmake-curl-library) の 3 つの cmake コマンドオプションが必要です。例えば、次のようになります。

     ```
     cmake ..\aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DFORCE_CURL=ON -DCURL_INCLUDE_DIR='C:/curl/include'
           -DCURL_LIBRARY='C:/curl/lib/libcurl.dll.a' -DCMAKE_PREFIX_PATH="C:\Program Files (x86)\aws-cpp-sdk-all"
     ```
**注記**  
「Failed to build third-party libraries」というエラーが表示された場合は、**cmake --version** を実行して CMake のバージョンを確認してください。CMake のバージョン 3.13 以上を使用する必要があります。

1. SDK のバイナリをビルドします。SDK の全体をビルドする場合、この処理には 1 時間以上かかることがあります。コマンド構文 

   `{path to cmake if not in PATH} --build . --config=[Debug | Release]`

   ```
   cmake --build . --config=Debug
   ```
**注記**  
「The code execution cannot proceed ... dll not found. Reinstalling the program may fix this problem.」というエラーが発生した場合は、`cmake` コマンドを再度実行します。

1. **管理者**権限でコマンドプロンプトを開き、先ほど `CMAKE_PREFIX_PATH` パラメータを使用して指定した場所に SDK をインストールします。コマンド構文 

   `{path to cmake if not in PATH} --install . --config=[Debug | Release]`

   ```
   cmake --install . --config=Debug
   ```

## Windows での Android 向けのビルド
<a name="building-for-android"></a>

Android 向けにビルドするには、`-DTARGET_ARCH=ANDROID` コマンドラインに `cmake` を追加します。 AWS SDK for C\$1\$1 には、適切な環境変数 () を参照して必要なものを含む CMake ツールチェーンファイルが含まれています`ANDROID_NDK`。

Windows で SDK for Android をビルドするには、Visual Studio (2015 以降) のデベロッパーコマンドプロンプトから `cmake` を実行する必要があります。また、[NMAKE](https://docs.microsoft.com/en-us/cpp/build/reference/nmake-reference?view=msvc-160) がインストールされており、パスにコマンド **`git`** と **`patch`** が含まれている必要があります。Windows システムに Git がインストールされている場合、通常 **`patch`** は隣接するディレクトリ (`.../Git/usr/bin/`) にあります。これらの要件を確認したら、`cmake` のコマンドラインを少し変更して NMAKE を使用するようにします。

```
cmake -G "NMake Makefiles" `-DTARGET_ARCH=ANDROID` <other options> ..
```

NMAKE は直列にビルドを行います。より高速にビルドを行うには、NMAKE の代わりに JOM をインストールし、`cmake` の呼び出しを次のように変更することをお勧めします。

```
cmake -G "NMake Makefiles JOM" `-DTARGET_ARCH=ANDROID` <other options> ..
```

アプリケーションの例については、「 [を使用した Android アプリケーションのセットアップ AWS SDK for C\$1\$1](https://aws.amazon.com/blogs/developer/setting-up-an-android-application-with-aws-sdk-for-c/)」を参照してください。

# Linux/macOS AWS SDK for C\$1\$1 での の構築
<a name="setup-linux"></a>

を設定するには AWS SDK for C\$1\$1、ソースから直接 SDK を構築するか、パッケージマネージャーを使用してライブラリをダウンロードします。



SDK のソースはサービスごとに個別のパッケージに分割されています。SDK 全体のインストールには最大 1 時間かかる場合があります。プログラムで使用する特定のサービスのみをインストールすれば、インストール時間を短縮でき、ディスクのサイズも抑えられます。インストールするサービスを選択するには、プログラムが使用する各サービスのパッケージ名を把握しておく必要があります。パッケージディレクトリのリストは、GitHub の [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp) で確認できます。パッケージ名は、そのサービスのディレクトリ名のサフィックス部分です。

```
aws-sdk-cpp\aws-cpp-sdk-<packageName>   # Repo directory name and packageName
aws-sdk-cpp\aws-cpp-sdk-s3              # Example: Package name is s3
```

## 前提条件
<a name="prerequisites"></a>

大規模な AWS クライアントの一部を構築するには、4 GB 以上の RAM が必要です。SDK は、*t2.micro*、*t2.small* など Amazon EC2 の小規模インスタンスタイプで、メモリ不足のためビルドに失敗する可能性があります。

を使用するには AWS SDK for C\$1\$1、次のいずれかが必要です。
+  GNU Compiler Collection (GCC) 4.9 以降、または 
+  Clang 3.3 以降。

## Linux システムの追加要件
<a name="additional-requirements-for-linux-systems"></a>

`libcurl`、`libopenssl`、`libuuid`、`zlib`、および (オプションで) Amazon Polly サポート用の `libpulse` のヘッダーファイル (`-dev` パッケージ) が必要です。パッケージはシステムのパッケージマネージャーで入手できます。

***Debian/Ubuntu ベースのシステム*にパッケージをインストールするには**
+ 

  ```
  sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
  ```

***Amazon Linux/Redhat/Fedora/CentOS ベースのシステム*にパッケージをインストールするには**
+ 

  ```
  sudo yum install libcurl-devel openssl-devel libuuid-devel pulseaudio-libs-devel
  ```

## ソースからの SDK のビルド
<a name="setup-linux-from-source"></a>

vcpkg を使用せずにコマンドラインツールを使用して、SDK をソースからビルドできます。この方法では、SDK ビルドをカスタマイズできます。使用可能なオプションについては、「[CMake のパラメータ](cmake-params.md)」を参照してください。

**SDK をソースからビルドするには**

1. [CMake](https://cmake.org/) (バージョン 3.13 以上) と、プラットフォームに関連するビルドツールをインストールします。`cmake` を `PATH` に追加することをお勧めします。CMake のバージョンを確認するには、コマンドプロンプトを開き、コマンド **cmake --version** を実行します。

1. コマンドプロンプトで、SDK を保存するフォルダに移動します。

1. 最新のソースコードを取得します。

   バージョン 1.11 では、git サブモジュールを使用して外部依存関係をラップしています。これには、「*AWS SDK とツールのリファレンスガイド*」に記載されている [CRT ライブラリ](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html)が含まれています。

   GitHub の [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp) から SDK ソースをダウンロードまたはクローンします。
   + Git でのクローン: HTTPS

     ```
     git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
     ```
   + Git でのクローン: SSH

     ```
     git clone --recurse-submodules git@github.com:aws/aws-sdk-cpp.git
     ```

1. 生成されたビルドファイルは、SDK ソースディレクトリの外部に保存することをお勧めします。ビルドファイルを保存するための新しいディレクトリを作成し、そのフォルダに移動します。

   ```
   mkdir sdk_build
   cd sdk_build
   ```

1. `cmake` を実行してビルドファイルを生成します。`cmake` コマンドラインで、*デバッグ*バージョンと*リリース*バージョンのどちらをビルドするかを指定します。この手順全体を通して `Debug` を選択し、アプリケーションコードをデバッグ設定で実行します。この手順全体を通して `Release` を選択し、アプリケーションコードをリリース設定で実行します。コマンド構文 

   `{path to cmake if not in PATH} {path to source location of aws-sdk-cpp} -DCMAKE_BUILD_TYPE=[Debug | Release] -DCMAKE_PREFIX_PATH={path to install} -DCMAKE_INSTALL_PREFIX={path to install}`

   ビルド出力を変更するその他の方法については、「[CMake のパラメータ](cmake-params.md)」を参照してください。
**注記**  
Mac の大文字と小文字を区別しないファイルシステムでビルドする場合、ビルドを実行するディレクトリで `pwd` コマンドの出力を確認します。`pwd` 出力で、`/Users` や `Documents` などのディレクトリ名に大文字と小文字が混在していることを確認します。

   ビルドファイルを生成するには、次のいずれかを実行します。
   + **ビルドファイルを生成する (すべて AWS のサービス)**: SDK 全体を構築するには、*デバッグ*バージョンと*リリース*バージョンのどちらを構築するかを指定して cmake を実行します。例えば、次のようになります。

     ```
     cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_INSTALL_PREFIX=/usr/local/
     ```

     
   + **ビルドファイルを生成する ( AWS のサービスの一部)**: SDK の特定のサービスまたはサービスパッケージのみをビルドするには、[BUILD\$1ONLY](cmake-params.md#cmake-build-only) パラメータでサービス名をセミコロンで区切って指定して CMake を実行します。次の例では、Amazon S3 サービスパッケージのみをビルドします。

     ```
     cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_ONLY="s3"
     ```
**注記**  
「Failed to build third-party libraries」というエラーが表示された場合は、**cmake --version** を実行して CMake のバージョンを確認してください。CMake のバージョン 3.13 以上を使用する必要があります。

1. SDK のバイナリをビルドします。SDK の全体をビルドする場合、処理に 1 時間以上かかることがあります。

   ```
   cmake --build . --config=Debug
   ```

1. SDK をインストールします。インストール先に選択した場所によっては、権限の昇格が必要になる場合があります。

   ```
   cmake --install . --config=Debug
   ```

## Linux での Android 向けのビルド
<a name="building-for-android"></a>

Android 向けにビルドするには、`-DTARGET_ARCH=ANDROID` コマンドラインに `cmake` を追加します。 AWS SDK for C\$1\$1 には、適切な環境変数 () を参照して必要なものを含む CMake ツールチェーンファイルが含まれています`ANDROID_NDK`。アプリケーションの例については、「 [を使用した Android アプリケーションのセットアップ AWS SDK for C\$1\$1](https://aws.amazon.com/blogs/developer/setting-up-an-android-application-with-aws-sdk-for-c/)」を参照してください。

# AWS SDK for C\$1\$1 を使用したシンプルなアプリケーションの作成
<a name="build-cmake"></a>

 [CMake](https://cmake.org/) は、アプリケーションの依存関係を管理し、ビルド対象のプラットフォームに適した Makefile を生成するためのビルドツールです。CMake を使用して、 AWS SDK for C\$1\$1を利用するプロジェクトを作成・ビルドできます。

この例では、所有している Amazon S3 バケットをレポートします。この例を実行するために AWS アカウントに S3 バケットを所有している必要はありませんが、少なくとも 1 つある方が、処理内容をはるかに確認しやすくなります。バケットがまだない場合は、「*Amazon Simple Storage Service ユーザーガイド*」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html)」を参照してください。

## ステップ 1: コードを記述する
<a name="setting-up-a-cmake-project"></a>

この例は、1 つのソースファイル (`hello_s3.cpp`) と 1 つの `CMakeLists.txt` ファイルを含む 1 つのフォルダで構成されています。プログラムは Amazon S3 を使用してストレージバケット情報をレポートします。このコードは GitHub の [AWS コードサンプルリポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3/hello_s3)でも入手できます。

`CMakeLists.txt` のビルド設定ファイルでは、多くのオプションを設定できます。詳細については、CMake のウェブサイトにある「[CMake チュートリアル](https://cmake.org/cmake-tutorial/)」を参照してください。

**注記**  
詳細解説: `CMAKE_PREFIX_PATH` の設定  
デフォルトでは、macOS、Linux、Android、およびその他の Windows 以外のプラットフォーム AWS SDK for C\$1\$1 上の は にインストール`/usr/local`され、Windows 上の は にインストールされます`\Program Files (x86)\aws-cpp-sdk-all`。  
 AWS SDK をこれらの標準ロケーションにインストールすると、CMake は必要なリソースを自動的に検出します。ただし、 AWS SDK をカスタムの場所にインストールする場合は、SDK の構築に起因する次のリソースの場所を CMake に伝える必要があります。  
`AWSSDKConfig.cmake`: CMake にプロジェクト内の AWS SDK ライブラリを検索して使用する方法を指示する設定ファイル。このファイルがないと、CMake は AWS SDK ヘッダーファイルを見つけたり、 AWS SDK ライブラリにリンクしたり、適切なコンパイラフラグを設定したりできません。
(バージョン 1.8 以前の場合) 依存関係の場所: `aws-c-event-stream`、`aws-c-common`、`aws-checksums`
カスタムインストールパスを設定するには:  

```
cmake -DCMAKE_PREFIX_PATH=/path/to/your/aws-sdk-installation /path/to/project/you/are/building
```
カスタムインストール用に `CMAKE_PREFIX_PATH` を設定しないと、CMake が `CMakeLists.txt` 内の `find_package(AWSSDK)` を処理しようとした際に、「Could not find AWSSDK」 (AWSSDK が見つかりませんでした) などのエラーでビルドが失敗します。

**注記**  
詳細解説: Windows ランタイムライブラリ  
プログラムを実行するには、実行可能ファイルのある場所に複数の DLL (`aws-c-common.dll`、`aws-c-event-stream.dll`、`aws-checksums.dll`、`aws-cpp-sdk-core.dll`) と、プログラムの構成要素に応じた特定の DLL が (この例では Amazon S3 を使用するため `aws-cpp-sdk-s3` も) 必要です。`CMakeLists.txt` ファイル内の 2 番目の`if`ステートメントは、この要件を満たすために、これらのライブラリをインストール場所から実行可能場所にコピーします。 `AWSSDK_CPY_DYN_LIBS`は、SDK の DLLs をインストール場所からプログラムの実行場所にコピー AWS SDK for C\$1\$1 する で定義されるマクロです。これらの DLL が実行可能ファイルのある場所に存在しない場合、「file not found」 (ファイルが見つかりません) というランタイム例外が発生します。このようなエラーが発生した場合は、`CMakeLists.txt` ファイルのこの部分を確認して、使用している環境に応じて調整してください。

**フォルダとソースファイルを作成するには**

1. ソースファイルを保持するための `hello_s3` ディレクトリ/プロジェクトを作成します。
**注記**  
Visual Studio でこの例を完了するには、**[新しいプロジェクトの作成]** を選択してから、**[CMake プロジェクト]** を選択します。プロジェクトに `hello_s3` という名前を付けます。このプロジェクト名は `CMakeLists.txt` ファイルで使用されます。

1. そのフォルダ内に、所有している Amazon S3 バケットをレポートする次のコードを含む `hello_s3.cpp` ファイルを追加します。

   ```
   #include <aws/core/Aws.h>
   #include <aws/s3/S3Client.h>
   #include <iostream>
   #include <aws/core/auth/AWSCredentialsProviderChain.h>
   using namespace Aws;
   using namespace Aws::Auth;
   
   /*
    *  A "Hello S3" starter application which initializes an Amazon Simple Storage Service (Amazon S3) client
    *  and lists the Amazon S3 buckets in the selected region.
    *
    *  main function
    *
    *  Usage: 'hello_s3'
    *
    */
   
   int main(int argc, char **argv) {
       Aws::SDKOptions options;
       // Optionally change the log level for debugging.
   //   options.loggingOptions.logLevel = Utils::Logging::LogLevel::Debug;
       Aws::InitAPI(options); // Should only be called once.
       int result = 0;
       {
           Aws::Client::ClientConfiguration clientConfig;
           // Optional: Set to the AWS Region (overrides config file).
           // clientConfig.region = "us-east-1";
                  
           // You don't normally have to test that you are authenticated. But the S3 service permits anonymous requests, thus the s3Client will return "success" and 0 buckets even if you are unauthenticated, which can be confusing to a new user. 
           auto provider = Aws::MakeShared<DefaultAWSCredentialsProviderChain>("alloc-tag");
           auto creds = provider->GetAWSCredentials();
           if (creds.IsEmpty()) {
               std::cerr << "Failed authentication" << std::endl;
           }
   
           Aws::S3::S3Client s3Client(clientConfig);
           auto outcome = s3Client.ListBuckets();
   
           if (!outcome.IsSuccess()) {
               std::cerr << "Failed with error: " << outcome.GetError() << std::endl;
               result = 1;
           } else {
               std::cout << "Found " << outcome.GetResult().GetBuckets().size()
                         << " buckets\n";
               for (auto &bucket: outcome.GetResult().GetBuckets()) {
                   std::cout << bucket.GetName() << std::endl;
               }
           }
       }
   
       Aws::ShutdownAPI(options); // Should only be called once.
       return result;
   }
   ```

1. プロジェクト名、実行可能ファイル、ソースファイル、リンクされたライブラリを指定する `CMakeLists.txt` ファイルを追加します。

   ```
   # Set the minimum required version of CMake for this project.
   cmake_minimum_required(VERSION 3.13)
   
   # Set the AWS service components used by this project.
   set(SERVICE_COMPONENTS s3)
   
   # Set this project's name.
   project("hello_s3")
   
   # Set the C++ standard to use to build this target.
   # At least C++ 11 is required for the AWS SDK for C++.
   set(CMAKE_CXX_STANDARD 11)
   
   # Use the MSVC variable to determine if this is a Windows build.
   set(WINDOWS_BUILD ${MSVC})
   
   if (WINDOWS_BUILD) # Set the location where CMake can find the installed libraries for the AWS SDK.
       string(REPLACE ";" "/aws-cpp-sdk-all;" SYSTEM_MODULE_PATH "${CMAKE_SYSTEM_PREFIX_PATH}/aws-cpp-sdk-all")
       list(APPEND CMAKE_PREFIX_PATH ${SYSTEM_MODULE_PATH})
   endif ()
   
   # Find the AWS SDK for C++ package.
   find_package(AWSSDK REQUIRED COMPONENTS ${SERVICE_COMPONENTS})
   
   if (WINDOWS_BUILD AND AWSSDK_INSTALL_AS_SHARED_LIBS)
       # Copy relevant AWS SDK for C++ libraries into the current binary directory for running and debugging.
   
       # set(BIN_SUB_DIR "/Debug") # if you are building from the command line you may need to uncomment this
       # and set the proper subdirectory to the executables' location.
   
       AWSSDK_CPY_DYN_LIBS(SERVICE_COMPONENTS "" ${CMAKE_CURRENT_BINARY_DIR}${BIN_SUB_DIR})
   endif ()
   
   add_executable(${PROJECT_NAME}
           hello_s3.cpp)
   
   target_link_libraries(${PROJECT_NAME}
           ${AWSSDK_LINK_LIBRARIES})
   ```

## ステップ 2: CMake を使用してビルドする
<a name="building-with-cmake"></a>

CMake は `CMakeLists.txt` の情報を使用して実行可能プログラムをビルドします。

使用している IDE の標準的な手順に従って、アプリケーションをビルドすることをお勧めします。

**コマンドラインからアプリケーションをビルドするには**

1. **`cmake`** がアプリケーションをビルドするためのディレクトリを作成します。

   ```
   mkdir my_project_build
   ```

1. ビルドディレクトリに移動し、プロジェクトのソースディレクトリへのパスを指定して **`cmake`** を実行します。

   ```
   cd my_project_build
   cmake ../
   ```

1. **`cmake`** がビルドディレクトリを生成した後、**`make`** (または Windows では **`nmake`**)、もしくは MSBUILD (`msbuild ALL_BUILD.vcxproj` または `cmake --build . --config=Debug`) を使用してアプリケーションをビルドできます。

## ステップ 3: を実行する
<a name="run-app"></a>

このアプリケーションを実行すると、Amazon S3 バケットの合計数と各バケットの名前がコンソール出力で表示されます。

使用している IDE の標準的な手順に従って、アプリケーションを実行することをお勧めします。

**注記**  
必ずサインインしてください。IAM Identity Center を使用して認証する場合は、 コマンドを使用して AWS CLI `aws sso login`サインインすることを忘れないでください。

**コマンドラインからプログラムを実行するには**

1. ビルド結果が生成された Debug ディレクトリに移動します。

1. 実行可能ファイルの名前を使用してプログラムを実行します。

   ```
   hello_s3
   ```

を使用したその他の例については AWS SDK for C\$1\$1、「」を参照してください[AWS SDK for C\$1\$1 AWS のサービス を使用して を呼び出すためのガイド付き例](programming-services.md)。