Windows での AWS SDK for C++ のビルド - AWS SDK for C++

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

Windows での AWS SDK for C++ のビルド

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

SDK のソースはサービスごとに個別のパッケージに分割されています。SDK 全体のインストールには最大 1 時間かかる場合があります。プログラムで使用する特定のサービスのみをインストールすれば、インストール時間を短縮でき、ディスクのサイズも抑えられます。インストールするサービスを選択するには、プログラムが使用する各サービスのパッケージ名を把握しておく必要があります。パッケージディレクトリのリストは、GitHub の 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

前提条件

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

AWS SDK for C++ を使用するには、次のいずれかが必要です。

  • Microsoft Visual Studio 2015 以降、

  • GNU Compiler Collection (GCC) 4.9 以降、または

  • Clang 3.3 以降。

Windows では、SDK はデフォルトの HTTP クライアントとして WinHTTP を使用してビルドされます。ただし、WinHTTP 1.0 は HTTP/2 双方向ストリーミングをサポートしていません。これは、Amazon Transcribe や Amazon Lex などの一部の AWS のサービス で必要となります。そのため、SDK に curl サポートを組み込んでビルドすることが必要になる場合があります。curl の使用可能なすべてのダウンロードオプションを確認するには、「curl Releases and Downloads」を参照してください。curl サポートを組み込んで SDK をビルドする 1 つの方法は次のとおりです。

curl ライブラリサポートを組み込んで SDK をビルドするには
  1. curl for Windows」にアクセスし、Microsoft Windows 用の curl バイナリパッケージをダウンロードします。

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

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

  4. その 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++ サービスクライアントの設定 を証明書ファイルのパスに設定する必要があります。Amazon Transcribe の使用例については、GitHub の transcribe-streaming コードサンプルリポジトリで「AWS」を参照してください。

ソースからの SDK のビルド

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

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

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

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

    バージョン 1.11 では、git サブモジュールを使用して外部依存関係をラップしています。これには、「AWS SDK とツールのリファレンスガイド」に記載されている CRT ライブラリが含まれています。

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

    mkdir sdk_build cd sdk_build
  5. 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 のパラメータ」を参照してください。

    ビルドファイルを生成するには、次のいずれかを実行します。

    • ビルドファイルを生成する (AWS のサービス の全体): SDK 全体をビルドするには、Debug または Release バージョンを指定して cmake を実行します。例:

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

    • ビルドファイルを生成する (AWS のサービス の一部): SDK の特定のサービスまたはサービスパッケージのみをビルドするには、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_CURLCURL_INCLUDE_DIRCURL_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 以上を使用する必要があります。

  6. 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 コマンドを再度実行します。

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

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

    cmake --install . --config=Debug

Windows での Android 向けのビルド

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

Windows で SDK for Android をビルドするには、Visual Studio (2015 以降) のデベロッパーコマンドプロンプトから cmake を実行する必要があります。また、NMAKE がインストールされており、パスにコマンド gitpatch が含まれている必要があります。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> ..

アプリケーションの例については、「AWS SDK for C++ を使用した Android アプリケーションの設定」を参照してください。