

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

# の開始方法 AWS SDK for C\$1\$1
<a name="getting-started"></a>

AWS SDK for C\$1\$1 は、Amazon Web Services への接続に使用できるモジュール化されたクロスプラットフォームのオープンソースライブラリです。

は [CMake](https://cmake.org/) AWS SDK for C\$1\$1 を使用して、ビデオゲーム、システム、モバイルデバイス、埋め込みデバイスなど、複数のドメインで複数のプラットフォームをサポートします。CMake は、アプリケーションの依存関係を管理し、ビルド対象のプラットフォームに適した Makefile を生成するビルドツールです。CMake は、プラットフォームやアプリケーションで使用されないビルド部分を除外します。

 AWS リソースにアクセスするためのコードを実行する前に、コードの認証方法を確立する必要があります AWS。
+  [AWS SDK for C\$1\$1 AWS を使用した での認証](credentials.md)

コード AWS SDK for C\$1\$1 で を使用するには、SDK ソースを直接構築するか、パッケージマネージャーを使用して SDK 実行可能ファイルを取得します。
+  [ソースコード AWS SDK for C\$1\$1 から を取得する](sdk-from-source.md)
+  [パッケージマネージャー AWS SDK for C\$1\$1 から を取得する](sdk-from-pm.md)

CMake に関するビルドの問題が発生した場合は、「[AWS SDK for C\$1\$1 ビルドの問題のトラブルシューティング](troubleshooting-cmake.md)」を参照してください。

# AWS SDK for C\$1\$1 AWS を使用した での認証
<a name="credentials"></a>

を使用して開発 AWS するときに、コードが で認証される方法を確立する必要があります AWS のサービス。 AWS リソースへのプログラムによるアクセスは、環境と利用可能な AWS アクセスに応じてさまざまな方法で設定できます。主な認証方式の選択肢と SDK 用の設定方法については、「*AWS SDK とツールのリファレンスガイド*」の「[認証とアクセス](https://docs.aws.amazon.com/sdkref/latest/guide/access.html)」を参照してください。

## コンソール認証情報の使用
<a name="using-con-creds"></a>

ローカル開発では、新しいユーザーが既存の AWS マネジメントコンソールのサインイン認証情報を使用して AWS サービスにプログラムでアクセスすることをお勧めします。ブラウザベースの認証フローの後、 は CLI AWS Tools for PowerShell や AWS SDKs AWS などのローカル開発ツールで動作する一時的な認証情報 AWSを生成します。この機能は、特に長期的なアクセスキーの管理よりもインタラクティブ認証を希望する場合、 AWS CLI 認証情報の設定と管理のプロセスを簡素化します。

この方法を選択した場合は、 CLI AWS を使用してコンソール認証情報でログインする手順に従います。詳細については、[「コンソール認証情報を使用した AWS ローカル開発のログイン](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)」を参照してください。

CLI AWS で設定すると、[デフォルトの認証情報プロバイダーチェーンは ](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/credproviders.html#credproviders-default-credentials-provider-chain)CLI AWS によってキャッシュされたログイントークンを使用してリクエストを自動的に開始します。

## IAM Identity Center の使用
<a name="using-iam-id-cent"></a>

この方法には、設定を容易に AWS CLI し、 AWS アクセスポータルに定期的にサインインするための のインストールが含まれます。

 この方法を選択した場合は、「*AWS SDK とツールのリファレンスガイド*」の「[IAM Identity Center 認証](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html)」の手順を完了します。その後、環境には次の要素が含まれている必要があります。
+ アプリケーションを実行する前に AWS アクセスポータルセッションを開始 AWS CLIするために使用する 。
+ SDK から参照できる設定値のセットを含む `[default]` プロファイルがある[共有 AWS`config` ファイル](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)。このファイルの場所を確認するには、*AWS SDK とツールのリファレンスガイド*の「[共有ファイルの場所](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)」を参照してください。
+  共有 `config` ファイルは [https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html) 設定を設定します。これにより、SDK AWS リージョン が AWS リクエストに使用するデフォルトが設定されます。このリージョンは、使用するリージョンが指定されていない SDK サービスリクエストに使用されます。
+  SDK は、リクエストを AWSに送信する前に、プロファイルの [SSO トークンプロバイダー設定](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html#feature-sso-credentials-profile)を使用して認証情報を取得します。IAM Identity Center アクセス許可セットに接続された IAM ロールである `sso_role_name`値は、アプリケーションで AWS のサービス 使用されている へのアクセスを許可する必要があります。

  次のサンプル `config` ファイルは、SSO トークンプロバイダー設定で設定されたデフォルトプロファイルを示しています。プロファイルの `sso_session` 設定は、指定された [`sso-session` セクション](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#section-session)を参照します。`sso-session` セクションには、 AWS アクセスポータルセッションを開始するための設定が含まれています。

  ```
  [default]
  sso_session = my-sso
  sso_account_id = 111122223333
  sso_role_name = SampleRole
  region = us-east-1
  output = json
  
  [sso-session my-sso]
  sso_region = us-east-1
  sso_start_url = https://provided-domain.awsapps.com/start
  sso_registration_scopes = sso:account:access
  ```

IAM Identity Center 認証を使用するには、アプリケーションに追加のパッケージ ( `SSO`や など`SSOOIDC`) AWS SDK for C\$1\$1 は必要ありません。

### AWS アクセスポータルセッションを開始する
<a name="accessportal"></a>

アクセスするアプリケーションを実行する前に AWS のサービス、SDK が IAM Identity Center 認証を使用して認証情報を解決するためのアクティブな AWS アクセスポータルセッションが必要です。設定したセッションの長さによっては、アクセスが最終的に期限切れになり、SDK で認証エラーが発生します。 AWS アクセスポータルにサインインするには、 で次のコマンドを実行します AWS CLI。

```
aws sso login
```

デフォルトのプロファイルを設定している場合は、`--profile` オプションを指定してコマンドを呼び出す必要はありません。SSO トークンプロバイダー設定で名前付きプロファイルを使用している場合、コマンドは `aws sso login --profile named-profile` です。

アクティブなセッションが既にあるかどうかをテストするには、次の AWS CLI コマンドを実行します。

```
aws sts get-caller-identity
```

このコマンドへの応答により、共有 `config` ファイルに設定されている IAM Identity Center アカウントとアクセス許可のセットが報告されます。

**注記**  
既にアクティブな AWS アクセスポータルセッションがあり、 を実行している場合は`aws sso login`、認証情報を指定する必要はありません。  
サインインプロセスにより、データ AWS CLI へのアクセスを許可するように求められる場合があります。 AWS CLI は SDK for Python 上に構築されているため、アクセス許可メッセージには`botocore`名前のバリエーションが含まれている可能性があります。

## 詳細認証情報
<a name="credother"></a>

人間のユーザーとは、別名*人的 ID* と呼ばれ、人、管理者、デベロッパー、オペレーター、およびアプリケーションのコンシューマーを指します。 AWS 環境とアプリケーションにアクセスするには、ID が必要です。組織のメンバーである人間のユーザーは、*ワークフォースアイデンティティ*とも呼ばれ、これはデベロッパーであるあなたを意味します。アクセス時に一時的な認証情報を使用します AWS。人間のユーザーの ID プロバイダーを使用して、一時的な認証情報を提供するロールを引き受けることで、 AWS アカウントへのフェデレーションアクセスを提供できます。一元的なアクセス管理を行うには、 AWS IAM アイデンティティセンター (IAM Identity Center) を使用して、アカウントへのアクセスとそれらのアカウント内のアクセス許可を管理することをお勧めします。その他の代替案については、以下を参照してください。
+ ベストプラクティスの詳細については、*IAM ユーザーガイド*の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。
+ 短期 AWS 認証情報を作成するには、*IAM ユーザーガイド*の[「一時的なセキュリティ認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)」を参照してください。
+ 他の AWS SDK for C\$1\$1 認証情報プロバイダーの詳細については、「 SDK およびツールリファレンスガイド」の[「標準化された認証情報プロバイダー](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)」を参照してください。 *AWS SDKs *

# ソースコード 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)。

# パッケージマネージャー AWS SDK for C\$1\$1 から を取得する
<a name="sdk-from-pm"></a>

**重要**  
homebrew や vcpkg などのパッケージマネージャーを使用している場合:  
SDK for C\$1\$1 を新しいバージョンに更新した後は、SDK に依存するライブラリや実行可能ファイルを再コンパイルする必要があります。

を設定するには 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 の小規模インスタンスタイプで、メモリ不足のためビルドに失敗する可能性があります。

------
#### [ Linux/macOS ]

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

------
#### [ Windows ]

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

------

## vcpkg を使用して SDK を取得する
<a name="setupwin-with-vcpkg"></a>

**重要**  
利用可能な vcpkg ディストリビューションは外部寄稿者によってサポートされており、 を通じて提供されるものではありません AWS。最新バージョンは[ソースからインストール](sdk-from-source.md)することで常に使用できます。

[vcpkg](https://github.com/Microsoft/vcpkg) は外部のコントリビューターによって更新・保守されているパッケージマネージャーです。このパッケージマネージャーは を通じて提供されるものではなく AWS 、 で利用可能な最新バージョンを反映していない場合があります AWS SDK for C\$1\$1。バージョンが によってリリースされてから、外部パッケージマネージャーを介して使用可能 AWS になるまでに遅延があります。最新バージョンは[ソースからインストール](sdk-from-source.md)することで常に使用できます。

システムに [vcpkg](https://github.com/Microsoft/vcpkg) をインストールする必要があります。
+ vcpkg の GitHub Readme の手順に従って [vcpkg](https://github.com/Microsoft/vcpkg) をダウンロードしてブートストラップし、プロンプトが表示されたら次のオプションを使用します。
  + 

    これらの手順の一環として、次の入力が求められます。

    ```
    .\vcpkg\vcpkg install [packages to install]
    ```

    SDK 全体をインストールするには、`.\vcpkg\vcpkg install "aws-sdk-cpp[*]" --recurse` を入力します。または、インストールする特定のサービスのみを、そのパッケージ名を角かっこ囲んで指定します (例: `.\vcpkg\vcpkg install "aws-sdk-cpp[s3, ec2]" --recurse`)。

  出力には、次のようなメッセージが表示されます。

  ```
  CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=C:/dev/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake"
  ```
+ 後で CMake で使用するために、`-DCMAKE_TOOLCHAIN_FILE` コマンド全体をコピーしておきます。vcpkg の GitHub Readme には、このコマンドをどこでツールセットに使用するかも記載されています。
+ また、vcpkg 経由でインストールしたビルド設定タイプも、後で必要になる場合があるため、メモしておきます。コンソール出力には、ビルド設定と SDK のバージョンが表示されます。次の出力例は、ビルド設定が「x86-windows」で、インストールされている AWS SDK for C\$1\$1 バージョンが 1.8 であることを示しています。

  ```
  The following packages will be built and installed:
      aws-sdk-cpp[core,dynamodb,kinesis,s3]:x86-windows -> 1.8.126#6
  ```

をインストールしたら AWS SDK for C\$1\$1、 SDK を使用して独自のアプリケーションを開発できます。「[シンプルなアプリケーションの作成](build-cmake.md)」に示している例では、所有している Amazon S3 バケットが出力されます。

# AWS SDK for C\$1\$1 ビルドの問題のトラブルシューティング
<a name="troubleshooting-cmake"></a>

ソース AWS SDK for C\$1\$1 から を構築する場合、次のような一般的なビルドの問題が発生する可能性があります。

**Topics**
+ [CMake エラー: 「AWSSDK」によって提供されるパッケージ設定ファイルが見つかりませんでした](#could-not-find-package)
+ [CMake エラー: ロードファイルが見つかりませんでした (現在の SDK バージョンは 1.8 です)](#could-not-load-file)
+ [CMake エラー: ロードファイルが見つかりませんでした](#could-not-load-file2)
+ [ランタイムエラー: `aws-*.dll` が見つからなかったため処理を続行できません](#dll-was-not-found)

## CMake エラー: 「AWSSDK」によって提供されるパッケージ設定ファイルが見つかりませんでした
<a name="could-not-find-package"></a>

インストールされた SDK が見つからない場合、CMake は次のエラーを表示します。

```
1> [CMake] CMake Error at C:\CodeRepos\CMakeProject1\CMakeLists.txt:4 (find_package):
1> [CMake]   Could not find a package configuration file provided by "AWSSDK" with any
1> [CMake]   of the following names:
1> [CMake] 
1> [CMake]     AWSSDKConfig.cmake
1> [CMake]     awssdk-config.cmake
1> [CMake] 
1> [CMake]   Add the installation prefix of "AWSSDK" to CMAKE_PREFIX_PATH or set
1> [CMake]   "AWSSDK_DIR" to a directory containing one of the above files.  If "AWSSDK"
1> [CMake]   provides a separate development package or SDK, be sure it has been
1> [CMake]   installed.
```

このエラーを解決するには、CMake に SDK のインストール先 (例: [Windows](setup-windows.md)、[Linux/macOS](setup-linux.md)) を指定します。`CMakeLists.txt` ファイルで最初に `find_package()` を呼び出す前に、次のコマンドを挿入します。例については、「[AWS SDK for C\$1\$1 を使用したシンプルなアプリケーションの作成](build-cmake.md)」を参照してください。

```
list(APPEND CMAKE_PREFIX_PATH "C:\\Program Files (x86)\\aws-cpp-sdk-all\\lib\\cmake")
```

## CMake エラー: ロードファイルが見つかりませんでした (現在の SDK バージョンは 1.8 です)
<a name="could-not-load-file"></a>

インストールされたライブラリが見つからない場合、CMake は次のエラーを表示します。

```
1> [CMake]   include could not find load file:
1> [CMake] 
1> [CMake]     C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-c-common/cmake/static/aws-c-common-targets.cmake

1> [CMake]   include could not find load file:
1> [CMake] 
1> [CMake]     C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-checksums/cmake/static/aws-checksums-targets.cmake
1> [CMake]   include could not find load file:
1> [CMake] 
1> [CMake]     C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-checksums/cmake/static/aws-checksums-targets.cmake
```

このエラーを解決するには、CMake に SDK のインストール先 (例: [Windows](setup-windows.md)、[Linux/macOS](setup-linux.md)) を指定します。`CMakeLists.txt` ファイルで最初に `find_package()` を呼び出す前に、次のコマンドを挿入します。例については、「[AWS SDK for C\$1\$1 を使用したシンプルなアプリケーションの作成](build-cmake.md)」を参照してください。

```
#Set the location of where Windows can find the installed libraries of the SDK.
if(MSVC)
    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()
```

この解決策は SDK バージョン 1.8 専用です。これより前のバージョンでは依存関係の扱いが異なります。バージョン 1.9 では、`aws-sdk-cpp` ライブラリと `aws-c-*` ライブラリの間に中間レイヤーを導入することで、これらの問題に対処しています。この新しいレイヤーは `aws-crt-cpp` という名前で、SDK for C\$1\$1 の git サブモジュールです。`aws-crt-cpp` は `aws-c-*` ライブラリ (`aws-c-common`、`aws-checksums`、` aws-c-event-stream`など) も独自の git サブモジュールとして含んでいます。これにより、SDK for C\$1\$1 はすべての CRT ライブラリを再帰的に取得でき、ビルドプロセスが改善されます。

## CMake エラー: ロードファイルが見つかりませんでした
<a name="could-not-load-file2"></a>

インストールされたライブラリが見つからない場合、CMake は次のエラーを表示します。

```
CMake Error at C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-c-auth/cmake/aws-c-auth-config.cmake:11 
         (include):  include could not find load file:   
         C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-c-auth/cmake/static/aws-c-auth-targets.cmake
```

このエラーを解決するには、CMake に共有ライブラリをビルドするように指定します。`CMakeLists.txt` ファイルで最初に `find_package()` を呼び出す前に、次のコマンドを挿入します。例については、「[AWS SDK for C\$1\$1 を使用したシンプルなアプリケーションの作成](build-cmake.md)」を参照してください。

```
set(BUILD_SHARED_LIBS ON CACHE STRING "Link to shared libraries by default.")
```

## ランタイムエラー: `aws-*.dll` が見つからなかったため処理を続行できません
<a name="dll-was-not-found"></a>

必要な DLL が見つからない場合、CMake は次のようなエラーを表示します。

```
The code execution cannot proceed because aws-cpp-sdk-[dynamodb].dll was not found. Reinstalling the program may fix this problem.
```

このエラーは、SDK for C\$1\$1 に必要なライブラリまたは実行可能ファイルがアプリケーションの実行可能ファイルと同じフォルダにないため発生します。このエラーを解決するには、SDK のビルド出力をアプリケーションの実行可能ファイルのある場所にコピーします。エラーの特定の DLL ファイル名は、使用している AWS サービスによって異なります。次の*いずれか*を行います。
+  AWS SDK for C\$1\$1 インストールの `/bin`フォルダの内容をアプリケーションのビルドフォルダにコピーします。
+ `CMakeLists.txt` ファイル内でマクロ AWSSDK\$1CPY\$1DYN\$1LIBS を使用すると、これらのファイルを自動でコピーできます。

  このマクロを使用するには、`AWSSDK_CPY_DYN_LIBS(SERVICE_LIST "" ${CMAKE_CURRENT_BINARY_DIR})` または `AWSSDK_CPY_DYN_LIBS(SERVICE_LIST "" ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE})` の呼び出しを `CMakeLists.txt` ファイルに追加します。例については、「[AWS SDK for C\$1\$1 を使用したシンプルなアプリケーションの作成](build-cmake.md)」を参照してください。

  ビルド環境に合った正しいコピー先パスを選択してください。コマンドラインからのビルドでは出力がサブフォルダ (`/Debug`) に配置されることが多いですが、Visual Studio やその他の IDE ではそうとは限りません。出力された実行可能ファイルの場所を確認し、マクロが正しい場所にコピーしていることを確認してください。この種の変更を行う際は、ビルド出力ディレクトリの内容を削除して、次回のビルドをクリーンな状態から開始することをお勧めします。