

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Den AWS SDK für C\$1\$1 aus dem Quellcode holen
<a name="sdk-from-source"></a>

Sie können das AWS SDK für C\$1\$1 aus Ihrem Code heraus verwenden, indem Sie das SDK zuerst aus dem Quellcode erstellen und es dann lokal installieren. 


**Prozessübersicht**  

| Allgemeiner Prozess  | Detaillierter Prozess | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sdk-for-cpp/v1/developer-guide/sdk-from-source.html) |  Erstellen Sie zuerst das SDK aus dem Quellcode und installieren Sie es.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sdk-for-cpp/v1/developer-guide/sdk-from-source.html) | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sdk-for-cpp/v1/developer-guide/sdk-from-source.html) |  Entwickeln Sie dann mithilfe des SDK Ihre eigene Anwendung.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sdk-for-cpp/v1/developer-guide/sdk-from-source.html)  | 

# Das unter AWS SDK für C\$1\$1 Windows erstellen
<a name="setup-windows"></a>

Um das einzurichten AWS SDK für C\$1\$1, können Sie das SDK entweder selbst direkt aus der Quelle erstellen oder die Bibliotheken mithilfe eines Paketmanagers herunterladen.



Die SDK-Quelle ist nach Diensten in einzelne Pakete aufgeteilt. Die Installation des gesamten SDK kann bis zu einer Stunde dauern. Wenn Sie nur die spezifische Teilmenge der Dienste installieren, die Ihr Programm verwendet, verringert sich die Installationszeit und auch die Festplattengröße. Um auswählen zu können, welche Dienste installiert werden sollen, müssen Sie den Paketnamen der einzelnen Dienste kennen, die Ihr Programm verwendet. Die Liste der Paketverzeichnisse finden Sie unter [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp)on GitHub. Der Paketname ist das Suffix des Verzeichnisnamens für den Dienst. 

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

## Voraussetzungen
<a name="prerequisites"></a>

Sie benötigen mindestens 4 GB RAM, um einige der größeren AWS Clients zu erstellen. Das SDK kann möglicherweise aufgrund unzureichenden Speichers nicht auf den Amazon EC2 EC2-Instance-Typen *t2.micro*, *t2.small* und anderen kleinen Instance-Typen aufbauen.

Um das verwenden zu können AWS SDK für C\$1\$1, benötigen Sie eine der folgenden Optionen:
+ Microsoft Visual Studio 2015 oder höher, 
+  GNU Compiler Collection (GCC) 4.9 oder höher oder
+  Clang 3.3 oder höher.

## Das SDK für Windows mit curl erstellen
<a name="build-curl-id"></a>

Unter Windows wurde das SDK mit [WinHTTP als Standard-HTTP-Client](https://msdn.microsoft.com/en-us/library/windows/desktop/aa382925%28v=vs.85%29.aspx) erstellt. WinHTTP 1.0 unterstützt jedoch kein bidirektionales HTTP/2-Streaming, das für einige Anwendungen AWS-Services wie Amazon Transcribe und Amazon Lex erforderlich ist. Daher ist es manchmal notwendig, die Curl-Unterstützung mit dem SDK aufzubauen. Eine Übersicht aller verfügbaren Curl-Download-Optionen finden Sie unter [curl-Releases](https://curl.se/download.html) und -Downloads. Eine Methode zum Erstellen des SDK mit Curl-Unterstützung ist die folgende:

**Um das SDK mit Unterstützung für die Curl-Bibliothek zu erstellen**

1. Navigieren Sie zu [curl für Windows](https://curl.se/windows/) und laden Sie das curl-Binärpaket für Microsoft Windows herunter. 

1. Entpacken Sie das Paket in einen Ordner auf Ihrem Computer, z. B. `C:\curl` 

1. Navigieren Sie zu den [CA-Zertifikaten, die aus Mozilla extrahiert wurden](http://curl.haxx.se/docs/caextract.html), und laden Sie die `cacert.pem` Datei herunter. Diese Privacy Enhanced Mail (PEM) -Datei enthält ein Bündel gültiger digitaler Zertifikate, mit denen die Echtheit sicherer Websites überprüft wird. Die Zertifikate werden von Zertifizierungsstellen (CA) wie Verisign GlobalSign vertrieben. 

1. Verschieben Sie die `cacert.pem` Datei in den `bin` Unterordner, den Sie in einem vorherigen Schritt entpackt haben, z. B. `C:\curl\bin` Benennen Sie die Datei um als. `curl-ca-bundle.crt` 

Außerdem muss die Microsoft Build Engine (MSBuild) in der Lage sein, die Curl `dll` im folgenden Verfahren zu finden. Daher sollten Sie den Pfad zum `bin` Ordner curl zu Ihrer `PATH` Windows-Umgebungsvariablen hinzufügen, z. B. `set PATH=%PATH%;C:\curl\bin` Sie müssen dies jedes Mal hinzufügen, wenn Sie eine neue Befehlszeile öffnen, um das SDK zu erstellen. Alternativ können Sie die Umgebungsvariable global in Ihren Windows-Systemeinstellungen festlegen, sodass die Einstellung gespeichert wird.

Wenn Sie *das SDK mit dem folgenden Verfahren aus dem Quellcode erstellen*, finden Sie in Schritt 5 (Generieren von Build-Dateien) die erforderliche Befehlssyntax, um Curl in Ihr SDK einzubauen. 

Wenn Sie Ihren Code schreiben, müssen Sie `caFile` [AWS SDK for C\$1\$1 C\$1\$1-Serviceclients im Code konfigurieren](client-config.md) den Speicherort Ihrer Zertifikatsdatei angeben. Ein Beispiel für die Verwendung von Amazon Transcribe finden Sie [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)im *AWS Codebeispiel-Repository* unter. GitHub

## Das SDK aus dem Quellcode erstellen
<a name="setup-windows-from-source"></a>

Sie können das SDK mithilfe von Befehlszeilentools aus dem Quellcode erstellen. Mit dieser Methode können Sie Ihren SDK-Build anpassen. Informationen zu den verfügbaren Optionen finden Sie unter [CMake Parameter](cmake-params.md). Es gibt drei Hauptschritte. Zunächst erstellen Sie die Dateien mit CMake. Zweitens erstellen Sie MSBuild damit die SDK-Binärdateien, die mit Ihrem Betriebssystem und der Build-Toolchain funktionieren. Drittens installieren oder kopieren Sie die Binärdateien an den richtigen Ort auf dem Entwicklungscomputer.

**Um das SDK aus dem Quellcode zu erstellen**

1. Installieren Sie [CMake](https://cmake.org/)(mindestens Version 3.13) und die entsprechenden Build-Tools für Ihre Plattform. Es wird empfohlen, es `cmake` zu Ihrem `PATH` hinzuzufügen. Um Ihre Version von zu überprüfen CMake, öffnen Sie eine Eingabeaufforderung und führen Sie den Befehl aus **cmake --version**

1. Navigieren Sie in einer Befehlszeile zu einem Ordner, in dem Sie das SDK speichern möchten.

1. Holen Sie sich den neuesten Quellcode.

   Version 1.11 verwendet Git-Submodule, um externe Abhängigkeiten zu umschließen. Dazu gehören die im [Referenzhandbuch *AWS SDKs und im Tools-Referenzhandbuch* beschriebenen CRT-Bibliotheken](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html).

   Laden Sie die SDK-Quelle herunter oder klonen Sie sie von [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp): GitHub
   + Mit Git klonen: HTTPS

     ```
     git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
     ```
   + Mit Git klonen: SSH

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

1. Wir empfehlen, die generierten Build-Dateien außerhalb des SDK-Quellverzeichnisses zu speichern. Erstellen Sie ein neues Verzeichnis, in dem die Build-Dateien gespeichert werden, und navigieren Sie zu diesem Ordner.

   ```
   mkdir sdk_build
   cd sdk_build
   ```

1. Generieren Sie die Build-Dateien, indem Sie Folgendes ausführen`cmake`. Geben Sie in der `cmake` Befehlszeile an, ob eine *Debug* - oder *Release-Version* erstellt werden soll. Wählen Sie `Debug` in diesem Verfahren aus, ob Sie eine Debug-Konfiguration Ihres Anwendungscodes ausführen möchten. Wählen Sie `Release` in diesem Verfahren aus, ob Sie eine Release-Konfiguration Ihres Anwendungscodes ausführen möchten. Für Windows ist der SDK-Installationsort in der Regel`\Program Files (x86)\aws-cpp-sdk-all\`. Befehlssyntax: 

   `{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}`

   Weitere Möglichkeiten, die Build-Ausgabe zu ändern, finden Sie unter [CMakeParameter](cmake-params.md).

   Gehen Sie wie folgt vor, um die Build-Dateien zu generieren:
   + **Generieren Sie Build-Dateien (alle AWS-Services)**: Um das gesamte SDK zu erstellen, führen Sie cmake aus und geben Sie an, ob eine *Debug* - oder *Release-Version* erstellt werden soll. Beispiel:

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

     
   + **Generieren Sie Build-Dateien (Teilmenge AWS-Services)**: Um nur einen bestimmten Dienst oder ein bestimmtes Servicepaket (e) für das SDK zu erstellen, fügen Sie den CMake [BUILD\$1ONLY](cmake-params.md#cmake-build-only) Parameter hinzu, wobei die Dienstnamen durch Semikolons getrennt sind. Das folgende Beispiel erstellt nur das Amazon S3 S3-Servicepaket:

     ```
     cmake ..\aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DBUILD_ONLY="s3" -DCMAKE_PREFIX_PATH="C:\Program Files (x86)\aws-cpp-sdk-all"
     ```
   + **Generieren Sie Build-Dateien (mit Curl)**: Nachdem Sie die Curl-Voraussetzungen erfüllt haben, sind drei zusätzliche cmake-Befehlszeilenoptionen erforderlich, um die Curl-Unterstützung in das SDK aufzunehmen:[FORCE\$1CURL](cmake-params.md#cmake-force-curl), und. [CURL\$1INCLUDE\$1DIR](cmake-params.md#cmake-curl-include-dir) [CURL\$1LIBRARY](cmake-params.md#cmake-curl-library) Beispiel: 

     ```
     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"
     ```
**Anmerkung**  
Wenn die Fehlermeldung Fehler beim Erstellen von Bibliotheken von Drittanbietern angezeigt wird, überprüfen Sie Ihre Version von, indem Sie den Befehl ausführen. CMake **cmake --version** Sie müssen CMake mindestens Version 3.13 verwenden. 

1. Erstellen Sie die SDK-Binärdateien. Wenn Sie das gesamte SDK erstellen, kann dieser Schritt eine Stunde oder länger dauern. Befehlssyntax: 

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

   ```
   cmake --build . --config=Debug
   ```
**Anmerkung**  
Wenn Sie auf den Fehler stoßen Die Codeausführung kann nicht fortgesetzt werden... Die DLL wurde nicht gefunden. Durch eine Neuinstallation des Programms kann dieses Problem möglicherweise behoben werden.“ , wiederholen Sie den `cmake` Befehl erneut.

1. Öffnen Sie eine Befehlszeile mit **Administratorrechten**, um das SDK mithilfe des `CMAKE_PREFIX_PATH` Parameters an dem zuvor angegebenen Speicherort zu installieren. Befehlssyntax: 

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

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

## Bauen für Android unter Windows
<a name="building-for-android"></a>

Um für Android zu bauen, fügen Sie `-DTARGET_ARCH=ANDROID` es Ihrer `cmake` Befehlszeile hinzu. Die AWS SDK für C\$1\$1 enthält eine CMake Toolchain-Datei, die alles enthält, was Sie benötigen, indem sie auf die entsprechenden Umgebungsvariablen () `ANDROID_NDK` verweist.

Um das SDK for Android unter Windows zu erstellen, müssen Sie es über eine Visual Studio-Entwickler-Befehlszeile (2015 oder höher) ausführen`cmake`. Außerdem müssen Sie NMAKE [NMAKE](https://docs.microsoft.com/en-us/cpp/build/reference/nmake-reference?view=msvc-160) installiert haben und die Befehle **`git`**müssen sich **`patch`**in Ihrem Pfad befinden. Wenn du Git auf einem Windows-System installiert hast, findest du es höchstwahrscheinlich **`patch`**in einem Geschwisterverzeichnis (). `.../Git/usr/bin/` Sobald du diese Anforderungen überprüft hast, ändert sich deine `cmake` Befehlszeile geringfügig, sodass du NMAKE verwendest.

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

NMAKE wird seriell erstellt. Um schneller zu bauen, empfehlen wir Ihnen, JOM als Alternative zu NMAKE zu installieren und dann den `cmake` Aufruf wie folgt zu ändern:

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

Eine Beispielanwendung finden Sie unter [Eine Android-Anwendung einrichten mit AWS SDK für C\$1\$1](https://aws.amazon.com/blogs/developer/setting-up-an-android-application-with-aws-sdk-for-c/)

# Aufbau des AWS SDK für C\$1\$1 auf Linux/macOS
<a name="setup-linux"></a>

Um das einzurichten AWS SDK für C\$1\$1, können Sie das SDK entweder selbst direkt aus der Quelle erstellen oder die Bibliotheken mit einem Paketmanager herunterladen.



Die SDK-Quelle ist nach Diensten in einzelne Pakete aufgeteilt. Die Installation des gesamten SDK kann bis zu einer Stunde dauern. Wenn Sie nur die spezifische Teilmenge der Dienste installieren, die Ihr Programm verwendet, verringert sich die Installationszeit und auch die Festplattengröße. Um auswählen zu können, welche Dienste installiert werden sollen, müssen Sie den Paketnamen der einzelnen Dienste kennen, die Ihr Programm verwendet. Die Liste der Paketverzeichnisse finden Sie unter [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp)on GitHub. Der Paketname ist das Suffix des Verzeichnisnamens für den Dienst. 

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

## Voraussetzungen
<a name="prerequisites"></a>

Sie benötigen mindestens 4 GB RAM, um einige der größeren AWS Clients zu erstellen. Das SDK kann möglicherweise aufgrund unzureichenden Speichers nicht auf den Amazon EC2 EC2-Instance-Typen *t2.micro*, *t2.small* und anderen kleinen Instance-Typen aufbauen.

Um das verwenden zu können AWS SDK für C\$1\$1, benötigen Sie eine der folgenden Optionen:
+  GNU Compiler Collection (GCC) 4.9 oder höher oder
+  Clang 3.3 oder höher.

## Zusätzliche Anforderungen für Linux-Systeme
<a name="additional-requirements-for-linux-systems"></a>

Sie benötigen die Header-Dateien (`-dev`Pakete) für`libcurl`,`libopenssl`, `libuuid``zlib`, und optional `libpulse` für den Amazon Polly Polly-Support. Sie können die Pakete mithilfe des Paketmanagers Ihres Systems finden.

**Um die Pakete auf *Debian/Ubuntu-basierten* Systemen zu installieren**
+ 

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

**Um die Pakete auf *Linux/Redhat/Fedora/CentOSAmazon-basierten Systemen* zu installieren**
+ 

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

## Das SDK aus dem Quellcode erstellen
<a name="setup-linux-from-source"></a>

Als Alternative zur Verwendung von vcpkg können Sie das SDK mithilfe von Befehlszeilentools aus dem Quellcode erstellen. Mit dieser Methode können Sie Ihren SDK-Build anpassen. Informationen zu den verfügbaren Optionen finden Sie unter [CMake Parameter](cmake-params.md).

**Um das SDK aus dem Quellcode zu erstellen**

1. Installieren Sie [CMake](https://cmake.org/)(mindestens Version 3.13) und die entsprechenden Build-Tools für Ihre Plattform. Es wird empfohlen, es `cmake` zu Ihrem `PATH` hinzuzufügen. Um Ihre Version von zu überprüfen CMake, öffnen Sie eine Eingabeaufforderung und führen Sie den Befehl aus **cmake --version**

1. Navigieren Sie in einer Befehlszeile zu einem Ordner, in dem Sie das SDK speichern möchten.

1. Holen Sie sich den neuesten Quellcode.

   Version 1.11 verwendet Git-Submodule, um externe Abhängigkeiten zu umschließen. Dazu gehören die im [Referenzhandbuch *AWS SDKs und im Tools-Referenzhandbuch* beschriebenen CRT-Bibliotheken](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html).

   Laden Sie die SDK-Quelle herunter oder klonen Sie sie von [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp): GitHub
   + Mit Git klonen: HTTPS

     ```
     git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
     ```
   + Mit Git klonen: SSH

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

1. Wir empfehlen, die generierten Build-Dateien außerhalb des SDK-Quellverzeichnisses zu speichern. Erstellen Sie ein neues Verzeichnis, in dem die Build-Dateien gespeichert werden, und navigieren Sie zu diesem Ordner.

   ```
   mkdir sdk_build
   cd sdk_build
   ```

1. Generieren Sie die Build-Dateien, indem Sie Folgendes ausführen`cmake`. Geben Sie in der `cmake` Befehlszeile an, ob eine *Debug* - oder *Release-Version* erstellt werden soll. Wählen Sie `Debug` in diesem Verfahren aus, ob Sie eine Debug-Konfiguration Ihres Anwendungscodes ausführen möchten. Wählen Sie `Release` in diesem Verfahren aus, ob Sie eine Release-Konfiguration Ihres Anwendungscodes ausführen möchten. Befehlssyntax: 

   `{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}`

   Weitere Möglichkeiten, die Build-Ausgabe zu ändern, finden Sie unter [CMakeParameter](cmake-params.md).
**Anmerkung**  
Wenn Sie auf einem Mac mit einem Dateisystem ohne Berücksichtigung der Groß- und Kleinschreibung kompilieren, überprüfen Sie die Ausgabe des `pwd` Befehls in dem Verzeichnis, in dem Sie den Build ausführen. Stellen Sie sicher, dass bei der `pwd` Ausgabe Groß- und Kleinschreibung für Verzeichnisnamen wie und verwendet wird. `/Users` `Documents`

   Gehen Sie wie folgt vor, um die Build-Dateien zu generieren:
   + **Generieren Sie Build-Dateien (alle AWS-Services)**: Um das gesamte SDK zu erstellen, führen Sie cmake aus und geben Sie an, ob eine *Debug* - oder *Release-Version* erstellt werden soll. Beispiel:

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

     
   + **Generieren Sie Build-Dateien (Teilmenge AWS-Services)**: Um nur einen bestimmten Dienst oder ein bestimmtes Servicepaket (e) für das SDK zu erstellen, fügen Sie den CMake [BUILD\$1ONLY](cmake-params.md#cmake-build-only) Parameter hinzu, wobei die Dienstnamen durch Semikolons getrennt sind. Das folgende Beispiel erstellt nur das Amazon S3 S3-Servicepaket:

     ```
     cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_ONLY="s3"
     ```
**Anmerkung**  
Wenn Sie die Fehlermeldung Fehler beim Erstellen von Bibliotheken von Drittanbietern erhalten, überprüfen Sie Ihre Version von, CMake indem Sie Folgendes ausführen**cmake --version**. Sie müssen CMake mindestens Version 3.13 verwenden. 

1. Erstellen Sie die SDK-Binärdateien. Wenn Sie das gesamte SDK erstellen, kann der Vorgang eine Stunde oder länger dauern. 

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

1. Installieren Sie das SDK. Je nachdem, an welchem Ort Sie die Installation vorgenommen haben, müssen Sie möglicherweise Ihre Rechte erweitern.

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

## Bauen für Android unter Linux
<a name="building-for-android"></a>

Um für Android zu bauen, fügen Sie `-DTARGET_ARCH=ANDROID` es Ihrer `cmake` Befehlszeile hinzu. Die AWS SDK für C\$1\$1 enthält eine CMake Toolchain-Datei, die alles enthält, was Sie benötigen, indem sie auf die entsprechenden Umgebungsvariablen () `ANDROID_NDK` verweist. Eine Beispielanwendung finden Sie unter [Einrichten einer Android-Anwendung](https://aws.amazon.com/blogs/developer/setting-up-an-android-application-with-aws-sdk-for-c/) mit AWS SDK für C\$1\$1

# Erstellen einer einfachen Anwendung mit dem AWS SDK for C\$1\$1
<a name="build-cmake"></a>

 [CMake](https://cmake.org/)ist ein Build-Tool, mit dem Sie die Abhängigkeiten Ihrer Anwendung verwalten und Makefiles erstellen können, die für die Plattform geeignet sind, auf der Sie aufbauen. Sie können es verwenden CMake , um Projekte mit dem zu erstellen und zu erstellen. AWS SDK für C\$1\$1

In diesem Beispiel werden die Amazon S3 S3-Buckets gemeldet, die Sie besitzen. Für dieses Beispiel ist es nicht erforderlich, einen Amazon S3 S3-Bucket in Ihrem AWS Konto zu haben, aber es ist weitaus interessanter, wenn Sie mindestens einen haben. Falls Sie noch [keinen Bucket haben, finden Sie weitere Informationen unter Bucket erstellen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) im *Amazon Simple Storage Service-Benutzerhandbuch*.

## Schritt 1: Schreiben Sie den Code
<a name="setting-up-a-cmake-project"></a>

Dieses Beispiel besteht aus einem Ordner mit einer Quelldatei (`hello_s3.cpp`) und einer `CMakeLists.txt` Datei. Das Programm verwendet Amazon S3, um Speicher-Bucket-Informationen zu melden. Dieser Code ist auch im [AWS Codebeispiel-Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3/hello_s3) unter verfügbar GitHub. 

Sie können viele Optionen in einer `CMakeLists.txt` Build-Konfigurationsdatei festlegen. Weitere Informationen finden Sie im [CMakeTutorial](https://cmake.org/cmake-tutorial/) auf der CMake Website. 

**Anmerkung**  
Deep Dive: Einstellung `CMAKE_PREFIX_PATH`  
Standardmäßig ist das AWS SDK für C\$1\$1 auf MacOS, Linux, Android und anderen Nicht-Windows-Plattformen in `/usr/local` und unter Windows installiert. `\Program Files (x86)\aws-cpp-sdk-all`  
Wenn Sie das AWS SDK an diesen Standardspeicherorten installieren, findet es CMake automatisch die erforderlichen Ressourcen. Wenn Sie das AWS SDK jedoch an einem benutzerdefinierten Speicherort installieren, müssen Sie angeben, CMake wo sich die folgenden Ressourcen befinden, die sich aus der Erstellung des SDK ergeben:  
`AWSSDKConfig.cmake`: Eine Konfigurationsdatei, die erklärt, CMake wie Sie die AWS SDK-Bibliotheken in Ihrem Projekt finden und verwenden können. Ohne diese Datei CMake können Sie keine AWS SDK-Header-Dateien finden, keine Links zu AWS SDK-Bibliotheken herstellen oder die richtigen Compiler-Flags einrichten.
(für Version 1.8 und früher) Der Speicherort der Abhängigkeiten:`aws-c-event-stream`,, `aws-c-common` `aws-checksums`
So legen Sie einen benutzerdefinierten Installationspfad fest:  

```
cmake -DCMAKE_PREFIX_PATH=/path/to/your/aws-sdk-installation /path/to/project/you/are/building
```
Wenn Sie keine benutzerdefinierte Installation festlegen`CMAKE_PREFIX_PATH`, schlägt Ihr Build fehl und es werden Fehler wie „Konnte nicht gefunden AWSSDK“ angezeigt, wenn CMake versucht wird, `find_package(AWSSDK)` in Ihrem zu verarbeiten`CMakeLists.txt`.

**Anmerkung**  
Tiefer Einblick: Windows-Runtime-Bibliotheken  
Um Ihr Programm auszuführen, DLLs sind mehrere im ausführbaren Verzeichnis Ihres Programms erforderlich:`aws-c-common.dll`,,`aws-c-event-stream.dll`,`aws-checksums.dll`,`aws-cpp-sdk-core.dll`, sowie alle spezifischen, auf den Komponenten Ihres Programms DLLs basierenden Daten (dieses Beispiel erfordert auch, `aws-cpp-sdk-s3` weil es Amazon S3 verwendet). Die zweite `if` Anweisung in der `CMakeLists.txt` Datei kopiert diese Bibliotheken vom Installationsverzeichnis in das Verzeichnis der ausführbaren Datei, um diese Anforderung zu erfüllen. `AWSSDK_CPY_DYN_LIBS`ist ein durch definiertes Makro AWS SDK für C\$1\$1 , das die SDKs DLLs vom Installationsverzeichnis in das Verzeichnis der ausführbaren Datei Ihres Programms kopiert. Wenn sich diese Dateien nicht im Verzeichnis der ausführbaren Datei DLLs befinden, treten Laufzeitausnahmen wie „Datei nicht gefunden“ auf. Überprüfen Sie diesen Teil der `CMakeLists.txt` Datei auf notwendige Änderungen für Ihre spezielle Umgebung, falls Sie auf diese Fehler stoßen.

**Um den Ordner und die Quelldateien zu erstellen**

1. Erstellen Sie ein `hello_s3` and/or Verzeichnisprojekt für Ihre Quelldateien.
**Anmerkung**  
Um dieses Beispiel in Visual Studio zu vervollständigen: Wählen Sie **Neues Projekt erstellen** und dann **CMake Projekt**. Benennen Sie das Projekt `hello_s3`. Dieser Projektname wird in der `CMakeLists.txt` Datei verwendet.

1. Fügen Sie in diesem Ordner eine `hello_s3.cpp` Datei hinzu, die den folgenden Code enthält, der die Amazon S3 S3-Buckets meldet, die Sie besitzen.

   ```
   #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. Fügen Sie eine `CMakeLists.txt` Datei hinzu, die den Namen Ihres Projekts, die ausführbaren Dateien, die Quelldateien und die verknüpften Bibliotheken angibt. 

   ```
   # 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})
   ```

## Schritt 2: Erstellen mit CMake
<a name="building-with-cmake"></a>

CMake verwendet die darin enthaltenen Informationen`CMakeLists.txt`, um ein ausführbares Programm zu erstellen.

Wir empfehlen, die Anwendung gemäß den Standardverfahren für Ihre IDE zu erstellen.

**Um die Anwendung über die Befehlszeile zu erstellen**

1. Erstellen Sie ein Verzeichnis, in dem Ihre Anwendung erstellt **`cmake`**werden soll.

   ```
   mkdir my_project_build
   ```

1. Wechseln Sie in das Build-Verzeichnis und führen Sie es **`cmake`**mit dem Pfad zum Quellverzeichnis Ihres Projekts aus.

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

1. Nachdem Sie Ihr Build-Verzeichnis **`cmake`**generiert haben, können Sie **`make`**(oder **`nmake`**unter Windows) oder MSBUILD (`msbuild ALL_BUILD.vcxproj`oder`cmake --build . --config=Debug`) verwenden, um Ihre Anwendung zu erstellen.

## Schritt 3: Ausführen
<a name="run-app"></a>

Wenn Sie diese Anwendung ausführen, zeigt sie eine Konsolenausgabe an, in der die Gesamtzahl der Amazon S3 S3-Buckets und der Name jedes Buckets aufgeführt sind.

Wir empfehlen, die Anwendung gemäß den Standardmethoden für Ihre IDE auszuführen.

**Anmerkung**  
Denken Sie daran, sich anzumelden\$1 Wenn Sie IAM Identity Center zur Authentifizierung verwenden, denken Sie daran, sich mit dem AWS CLI `aws sso login` folgenden Befehl anzumelden.

**Um das Programm über die Befehlszeile auszuführen**

1. Wechseln Sie in das Debug-Verzeichnis, in dem das Ergebnis des Builds generiert wurde. 

1. Führen Sie das Programm mit dem Namen der ausführbaren Datei aus.

   ```
   hello_s3
   ```

Weitere Beispiele für die AWS SDK für C\$1\$1 Verwendung von finden Sie unter[Geführte Beispiele für Aufrufe AWS-Services mit dem AWS SDK for C\$1\$1](programming-services.md).