

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Windows 適用於 C\$1\$1 的 AWS SDK 上建置
<a name="setup-windows"></a>

若要設定 適用於 C\$1\$1 的 AWS SDK，您可以直接從來源自行建置 SDK，或使用套件管理員下載程式庫。



SDK 來源會依服務分成個別套件。安裝整個 SDK 最多可能需要一小時。僅安裝您的程式使用的特定服務子集可減少安裝時間，並減少磁碟上的大小。若要選擇要安裝的服務，您需要知道程式使用的每個服務的套件名稱。您可以在 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>

您需要至少 4 GB 的 RAM，才能建置一些較大的 AWS 用戶端。由於記憶體不足，開發套件可能無法在 Amazon EC2 執行個體類型 *t2.micro*、*t2.small* 和其他小型執行個體類型上建置。

若要使用 適用於 C\$1\$1 的 AWS SDK，您需要下列其中一項：
+ Microsoft Visual Studio 2015 或更新版本，
+  GNU 編譯器集合 (GCC) 4.9 或更新版本，或
+  Clang 3.3 或更新版本。

## 使用 curl 建置適用於 Windows 的 SDK
<a name="build-curl-id"></a>

在 Windows 上，軟體開發套件是以 [WinHTTP](https://msdn.microsoft.com/en-us/library/windows/desktop/aa382925%28v=vs.85%29.aspx) 做為預設 HTTP 用戶端建置。不過，WinHTTP 1.0 不支援 HTTP/2 雙向串流，這是 Amazon Transcribe 和 Amazon Lex AWS 服務 等部分的必要串流。因此，有時需要使用 SDK 建置 curl 支援。若要檢視所有可用的 curl 下載選項，請參閱 [curl 版本和下載](https://curl.se/download.html)。使用 curl 支援建置 SDK 的一種方法如下：

**建置包含 curl 程式庫支援的 SDK**

1. 導覽至適用於 [Windows 的 curl](https://curl.se/windows/) 並下載適用於 Microsoft Windows 的 curl 二進位套件。

1. 將套件解壓縮至電腦上的資料夾，例如 `C:\curl`。

1. 導覽至[從 Mozilla 擷取的 CA 憑證](http://curl.haxx.se/docs/caextract.html)，然後下載 `cacert.pem` 檔案。此隱私權增強型郵件 (PEM) 檔案包含一組有效的數位憑證，用於驗證安全網站的真實性。憑證由憑證授權機構 (CA) 公司分發，例如 GlobalSign 和 Verisign。

1. 將`cacert.pem`檔案移至您在上一個步驟中解壓縮的`bin`子資料夾，例如 `C:\curl\bin`。將檔案重新命名為 `curl-ca-bundle.crt`。

此外，Microsoft Build Engine (MSBuild) 必須能夠在下列`dll`程序中找到 curl。因此，您應該將 curl `bin` 資料夾路徑新增至 Windows `PATH`環境變數，例如 `set PATH=%PATH%;C:\curl\bin`。每次開啟新的命令提示以建置 SDK 時，都必須新增此項目。或者，您可以在 Windows 系統設定中全域設定環境變數，以便記住設定。

在下列程序中*從來源建置 SDK* 時，請參閱步驟 5 （產生建置檔案） 以取得在 SDK 中建置 curl 所需的命令語法。

撰寫程式碼時，您必須在 `caFile`中將 [在程式碼中設定適用於 C\$1\$1 服務用戶端的 AWS SDK](client-config.md) 設定為憑證檔案的位置。如需使用 Amazon Transcribe 的範例，請參閱 GitHub 上*AWS 程式碼範例儲存庫*[https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/transcribe-streaming](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/transcribe-streaming)中的 。

## 從來源建置 SDK
<a name="setup-windows-from-source"></a>

您可以使用命令列工具從來源建置 SDK。使用此方法，您可以自訂 SDK 組建。如需可用選項的詳細資訊，請參閱 [CMake 參數](cmake-params.md)。有三個主要步驟。首先，您使用 CMake 建置檔案。其次，您會使用 MSBuild 來建置可搭配您的作業系統和建置工具鏈使用的 SDK 二進位檔。第三，您會將二進位檔安裝或複製到開發機器上的正確位置。

**從來源建置 SDK**

1. 安裝 [CMake](https://cmake.org/) （最低版本 3.13) 和平台的相關建置工具。建議將 `cmake`新增至您的 `PATH`。若要檢查您的 CMake 版本，請開啟命令提示字元並執行命令 **cmake --version**

1. 在命令提示字元中，導覽至您要存放 SDK 的資料夾。

1. 取得最新的原始程式碼。

   1.11 版使用 git 子模組來包裝外部相依性。這包括 *AWS SDK 和工具參考指南中所述SDKs * [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，軟體開發套件安裝位置通常為 `\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 的特定服務或 （服務套件），請新增 CMake [BUILD\$1ONLY](cmake-params.md#cmake-build-only) 參數，並將服務名稱以分號分隔。下列範例只會建置 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 先決條件後，需要三個額外的 cmake 命令列選項，才能在 SDK 中包含 curl 支援：[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)。例如：

     ```
     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"
     ```
**注意**  
如果您收到錯誤 無法建置第三方程式庫，請執行 檢查您的 CMake 版本**cmake --version**。您必須使用 CMake 最低版本 3.13。

1. 建置 SDK 二進位檔。如果您要建置整個 SDK，此步驟可能需要一小時或更長的時間。命令語法：

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

   ```
   cmake --build . --config=Debug
   ```
**注意**  
如果您遇到錯誤 程式碼執行無法繼續 ... 找不到 dll。重新安裝程式可能會修正此問題。」，請重試 `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`命令列。 適用於 C\$1\$1 的 AWS SDK 包含 CMake 工具鏈檔案，其中包含您參考適當環境變數 () 所需的內容`ANDROID_NDK`。

若要在 Windows 上建置適用於 Android 的 SDK，您需要`cmake`從 Visual Studio (2015 或更新版本） 開發人員命令提示字元執行 。您也需要在路徑**`patch`**中安裝 NMAKE [NMAKE](https://docs.microsoft.com/en-us/cpp/build/reference/nmake-reference?view=msvc-160) 和命令 **`git`**和 。如果您已在 Windows 系統上安裝 git，則最有可能**`patch`**在同級目錄中找到 (`.../Git/usr/bin/`)。驗證這些需求後，您的`cmake`命令列會稍微變更以使用 NMAKE。

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

NMAKE 會以序列方式建置。若要更快速地建置，我們建議您安裝 JOM 做為 NMAKE 的替代方案，然後變更`cmake`呼叫，如下所示：

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

如需範例應用程式，請參閱[使用 設定 Android 應用程式 適用於 C\$1\$1 的 AWS SDK](https://aws.amazon.com/blogs/developer/setting-up-an-android-application-with-aws-sdk-for-c/)