

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memulai dengan AWS SDK untuk C\$1\$1
<a name="getting-started"></a>

AWS SDK untuk C\$1\$1 adalah pustaka sumber terbuka termodulasi, lintas platform, yang dapat Anda gunakan untuk terhubung ke Amazon Web Services.

 AWS SDK untuk C\$1\$1 Penggunaan [CMake](https://cmake.org/)untuk mendukung beberapa platform melalui beberapa domain, termasuk video game, sistem, seluler, dan perangkat tertanam. CMake adalah alat build yang dapat Anda gunakan untuk mengelola dependensi aplikasi Anda dan untuk membuat makefile yang cocok untuk platform yang Anda bangun. CMake menghapus bagian build yang tidak digunakan untuk platform atau aplikasi Anda.

Sebelum Anda menjalankan kode untuk mengakses AWS sumber daya, Anda harus menetapkan bagaimana kode Anda mengautentikasi. AWS
+  [Mengautentikasi dengan AWS menggunakan AWS SDK for C\$1\$1](credentials.md)

Untuk menggunakan kode AWS SDK untuk C\$1\$1 dalam Anda, dapatkan executable SDK dengan membuat sumber SDK secara langsung atau dengan menggunakan manajer paket.
+  [Mendapatkan AWS SDK untuk C\$1\$1 dari kode sumber](sdk-from-source.md)
+  [Mendapatkan AWS SDK untuk C\$1\$1 dari manajer paket](sdk-from-pm.md)

Jika Anda mengalami masalah build terkait CMake, lihat[Memecahkan masalah AWS SDK for C\$1\$1 build](troubleshooting-cmake.md).

# Mengautentikasi dengan AWS menggunakan AWS SDK for C\$1\$1
<a name="credentials"></a>

Anda harus menetapkan bagaimana kode Anda mengautentikasi AWS saat mengembangkan dengan Layanan AWS. Anda dapat mengonfigurasi akses terprogram ke AWS sumber daya dengan cara yang berbeda tergantung pada lingkungan dan AWS akses yang tersedia untuk Anda. Untuk pilihan pada semua metode utama otentikasi, dan panduan tentang mengonfigurasinya untuk SDK, lihat [Autentikasi dan akses](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) di Panduan Referensi Alat *AWS SDKs dan* Alat. 

## Menggunakan kredensil konsol
<a name="using-con-creds"></a>

Untuk pengembangan lokal, kami menyarankan agar pengguna baru menggunakan kredenal masuk Konsol AWS Manajemen yang ada untuk akses terprogram ke layanan. AWS Setelah alur otentikasi berbasis browser, buat AWS kredensil sementara yang berfungsi di seluruh alat pengembangan lokal seperti CLI, dan. AWS Alat AWS untuk PowerShell AWS SDKs Fitur ini menyederhanakan proses konfigurasi dan pengelolaan kredensional AWS CLI, terutama jika Anda lebih memilih otentikasi interaktif daripada mengelola kunci akses jangka panjang.

Jika Anda memilih metode ini, ikuti petunjuk untuk masuk dengan kredenal konsol menggunakan CLI AWS . Lihat [Login untuk pengembangan AWS lokal menggunakan kredensil konsol](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html) untuk detail selengkapnya. 

Setelah diatur dengan AWS CLI, [rantai penyedia kredensi default](https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/credproviders.html#credproviders-default-credentials-provider-chain) akan secara otomatis mulai menggunakan token login yang di-cache oleh AWS CLI untuk membuat permintaan. 

## Menggunakan Pusat Identitas IAM
<a name="using-iam-id-cent"></a>

Metode ini termasuk menginstal AWS CLI untuk kemudahan konfigurasi dan untuk masuk secara teratur ke portal AWS akses. 

 Jika Anda memilih metode ini, selesaikan prosedur untuk [autentikasi Pusat Identitas IAM di Panduan](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) *Referensi Alat AWS SDKs dan Alat*. Setelah itu, lingkungan Anda harus mengandung elemen-elemen berikut:
+ Itu AWS CLI, yang Anda gunakan untuk memulai sesi portal AWS akses sebelum Anda menjalankan aplikasi Anda.
+ [AWS`config`File bersama](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) yang memiliki `[default]` profil dengan serangkaian nilai konfigurasi yang dapat direferensikan dari SDK. Untuk menemukan lokasi file ini, lihat [Lokasi file bersama di](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html) *Panduan Referensi Alat AWS SDKs dan*.
+  `config`File bersama menetapkan [https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html)pengaturan. Ini menetapkan default Wilayah AWS yang digunakan SDK untuk AWS permintaan. Wilayah ini digunakan untuk permintaan layanan SDK yang tidak ditentukan dengan Wilayah yang akan digunakan. 
+  SDK menggunakan [konfigurasi penyedia token SSO](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html#feature-sso-credentials-profile) profil untuk memperoleh kredensil sebelum mengirim permintaan ke. AWS`sso_role_name`Nilai, yang merupakan peran IAM yang terhubung ke set izin Pusat Identitas IAM, harus memungkinkan akses ke yang Layanan AWS digunakan dalam aplikasi Anda.

  `config`File contoh berikut menunjukkan profil default yang diatur dengan konfigurasi penyedia token SSO. `sso_session`Pengaturan profil mengacu pada [`sso-session`bagian](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#section-session) bernama. `sso-session`Bagian ini berisi pengaturan untuk memulai sesi portal AWS akses.

  ```
  [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
  ```

Tidak AWS SDK untuk C\$1\$1 memerlukan paket tambahan (seperti `SSO` dan`SSOOIDC`) untuk ditambahkan ke aplikasi Anda untuk menggunakan autentikasi IAM Identity Center.

### Memulai sesi portal AWS akses
<a name="accessportal"></a>

Sebelum menjalankan aplikasi yang mengakses Layanan AWS, Anda memerlukan sesi portal AWS akses aktif agar SDK menggunakan autentikasi IAM Identity Center untuk menyelesaikan kredensialnya. Bergantung pada panjang sesi yang dikonfigurasi, akses Anda pada akhirnya akan kedaluwarsa dan SDK akan mengalami kesalahan otentikasi. Untuk masuk ke portal AWS akses, jalankan perintah berikut di AWS CLI.

```
aws sso login
```

Karena Anda memiliki pengaturan profil default, Anda tidak perlu memanggil perintah dengan `--profile` opsi. Jika konfigurasi penyedia token SSO Anda menggunakan profil bernama, perintahnya adalah`aws sso login --profile named-profile`.

Untuk menguji apakah Anda sudah memiliki sesi aktif, jalankan AWS CLI perintah berikut.

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

Respons terhadap perintah ini harus melaporkan akun IAM Identity Center dan set izin yang dikonfigurasi dalam `config` file bersama.

**catatan**  
Jika Anda sudah memiliki sesi portal AWS akses aktif dan menjalankannya`aws sso login`, Anda tidak akan diminta untuk memberikan kredensil.   
Proses masuk mungkin meminta Anda untuk mengizinkan AWS CLI akses ke data Anda. Karena AWS CLI dibangun di atas SDK untuk Python, pesan izin mungkin berisi variasi nama. `botocore`

## Informasi otentikasi lebih lanjut
<a name="credother"></a>

Pengguna manusia, juga dikenal sebagai *identitas manusia*, adalah orang, administrator, pengembang, operator, dan konsumen aplikasi Anda. Mereka harus memiliki identitas untuk mengakses AWS lingkungan dan aplikasi Anda. Pengguna manusia yang merupakan anggota organisasi Anda juga dikenal sebagai *identitas tenaga kerja*, yang berarti Anda, pengembang. Gunakan kredensi sementara saat mengakses. AWS Anda dapat menggunakan penyedia identitas bagi pengguna manusia Anda untuk menyediakan akses gabungan ke AWS akun dengan mengambil peran, yang menyediakan kredensi sementara. Untuk manajemen akses terpusat, kami sarankan Anda menggunakan AWS IAM Identity Center (IAM Identity Center) untuk mengelola akses ke akun Anda dan izin dalam akun tersebut. Untuk alternatif lainnya, lihat yang berikut ini:
+ Untuk mempelajari lebih lanjut tentang praktik terbaik, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) di *Panduan Pengguna IAM*.
+ *Untuk membuat AWS kredensil jangka pendek, lihat [Kredenal Keamanan Sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) di Panduan Pengguna IAM.*
+ Untuk mempelajari tentang penyedia AWS SDK untuk C\$1\$1 kredensi lainnya, lihat Penyedia kredensi [terstandarisasi di Panduan Referensi](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) Alat *AWS SDKs dan* Alat.

# Mendapatkan AWS SDK untuk C\$1\$1 dari kode sumber
<a name="sdk-from-source"></a>

Anda dapat menggunakan AWS SDK untuk C\$1\$1 dari kode Anda dengan terlebih dahulu membangun SDK dari sumber dan kemudian menginstalnya secara lokal. 


**Gambaran umum proses**  

| Proses umum  | Proses terperinci | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sdk-for-cpp/v1/developer-guide/sdk-from-source.html) |  Pertama membangun SDK dari sumber dan menginstalnya.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sdk-for-cpp/v1/developer-guide/sdk-from-source.html) | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sdk-for-cpp/v1/developer-guide/sdk-from-source.html) |  Kemudian kembangkan aplikasi Anda sendiri menggunakan SDK.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sdk-for-cpp/v1/developer-guide/sdk-from-source.html)  | 

# Membangun AWS SDK untuk C\$1\$1 di Windows
<a name="setup-windows"></a>

Untuk mengaturnya AWS SDK untuk C\$1\$1, Anda dapat membuat SDK sendiri langsung dari sumbernya atau mengunduh pustaka menggunakan pengelola paket.



Sumber SDK dipisahkan menjadi paket individual berdasarkan layanan. Menginstal seluruh SDK dapat memakan waktu hingga satu jam. Menginstal hanya subset layanan tertentu yang digunakan program Anda mengurangi waktu instalasi dan juga mengurangi ukuran pada disk. Untuk memilih layanan mana yang akan diinstal, Anda perlu mengetahui nama paket dari setiap layanan yang digunakan program Anda. Anda dapat melihat daftar direktori paket di [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp)on GitHub. Nama paket adalah akhiran dari nama direktori untuk layanan. 

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

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

Anda memerlukan minimal 4 GB RAM untuk membangun beberapa AWS klien yang lebih besar. SDK mungkin gagal dibangun di jenis instans Amazon EC2 t2.micro*, t2.small,* dan *jenis* instans kecil lainnya karena memori tidak mencukupi.

Untuk menggunakan AWS SDK untuk C\$1\$1, Anda memerlukan salah satu dari yang berikut ini:
+ Microsoft Visual Studio 2015 atau yang lebih baru, 
+  GNU Compiler Collection (GCC) 4.9 atau yang lebih baru, atau
+  Dentang 3.3 atau yang lebih baru.

## Membangun SDK untuk Windows dengan curl
<a name="build-curl-id"></a>

Di Windows, SDK dibangun dengan [WinHTTP](https://msdn.microsoft.com/en-us/library/windows/desktop/aa382925%28v=vs.85%29.aspx) sebagai klien HTTP default. Namun, WinHTTP 1.0 tidak mendukung streaming dua arah HTTP/2, yang diperlukan untuk beberapa seperti Layanan AWS Amazon Transcribe dan Amazon Lex. Dengan demikian, kadang-kadang perlu untuk membangun dukungan curl dengan SDK. Untuk melihat semua opsi unduhan curl yang tersedia, lihat [Rilis dan Unduhan curl](https://curl.se/download.html). Salah satu metode untuk membangun SDK dengan dukungan curl adalah sebagai berikut:

**Untuk membangun SDK dengan dukungan curl library disertakan**

1. Arahkan ke [curl untuk Windows](https://curl.se/windows/) dan unduh paket biner curl untuk Microsoft Windows. 

1. Buka paket ke folder di komputer Anda, misalnya,`C:\curl`. 

1. Arahkan ke [sertifikat CA yang diekstrak dari Mozilla](http://curl.haxx.se/docs/caextract.html) dan unduh file. `cacert.pem` File Privacy Enhanced Mail (PEM) ini berisi bundel sertifikat digital yang valid yang digunakan untuk memverifikasi keaslian situs web yang aman. Sertifikat didistribusikan oleh perusahaan otoritas sertifikat (CA) seperti GlobalSign dan Verisign. 

1. Pindahkan `cacert.pem` file ke `bin` subfolder yang Anda bongkar pada langkah sebelumnya, misalnya,. `C:\curl\bin` Ganti nama file sebagai`curl-ca-bundle.crt`. 

Selain itu, Microsoft Build Engine (MSBuild) harus dapat menemukan ikal `dll` dalam prosedur berikut. Oleh karena itu, Anda harus menambahkan path `bin` folder curl ke variabel `PATH` lingkungan Windows Anda, misalnya,`set PATH=%PATH%;C:\curl\bin`. Anda harus menambahkan ini setiap kali Anda membuka prompt perintah baru untuk membangun SDK. Atau, Anda dapat mengatur variabel lingkungan secara global di pengaturan sistem Windows Anda sehingga pengaturan diingat.

Saat *Membuat SDK dari sumber* dalam prosedur berikut, lihat Langkah 5 (Menghasilkan file build) untuk sintaks perintah yang diperlukan untuk membangun curl ke SDK Anda. 

Saat menulis kode Anda, Anda harus mengatur `caFile` [Mengkonfigurasi AWS SDK for C\$1\$1 klien layanan dalam kode](client-config.md) ke lokasi file sertifikat Anda. Untuk contoh menggunakan Amazon Transcribe, lihat [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)di *Repositori Contoh AWS Kode* di. GitHub

## Membangun SDK dari sumber
<a name="setup-windows-from-source"></a>

Anda dapat membangun SDK dari sumber menggunakan alat baris perintah. Dengan menggunakan metode ini, Anda dapat menyesuaikan build SDK. Untuk informasi tentang opsi yang tersedia, lihat [CMake Parameter](cmake-params.md). Ada tiga langkah utama. Pertama, Anda membuat file menggunakan CMake. Kedua, Anda gunakan MSBuild untuk membangun binari SDK yang bekerja dengan sistem operasi Anda dan membangun toolchain. Ketiga, Anda menginstal atau menyalin binari ke lokasi yang benar pada mesin pengembangan.

**Untuk membangun SDK dari sumber**

1. Instal [CMake](https://cmake.org/)(versi minimum 3.13) dan alat build yang relevan untuk platform Anda. Disarankan untuk menambahkan `cmake` ke Anda`PATH`. Untuk memeriksa versi Anda CMake, buka command prompt dan jalankan perintah **cmake --version**

1. Dalam prompt perintah, navigasikan ke folder tempat Anda ingin menyimpan SDK.

1. Dapatkan kode sumber terbaru.

   Versi 1.11 menggunakan submodul git untuk membungkus dependensi eksternal. Ini termasuk [pustaka CRT](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html) yang dijelaskan dalam Panduan *Referensi Alat AWS SDKs dan*.

   Unduh atau kloning sumber SDK dari [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp)pada: GitHub
   + Kloning dengan Git: HTTPS

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

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

1. Sebaiknya simpan file build yang dihasilkan di luar direktori sumber SDK. Buat direktori baru untuk menyimpan file build dan navigasikan ke folder itu.

   ```
   mkdir sdk_build
   cd sdk_build
   ```

1. Hasilkan file build dengan menjalankan`cmake`. Tentukan pada baris `cmake` perintah apakah akan membangun versi *Debug* atau *Rilis*. Pilih `Debug` seluruh prosedur ini untuk menjalankan konfigurasi debug kode aplikasi Anda. Pilih `Release` seluruh prosedur ini untuk menjalankan konfigurasi rilis kode aplikasi Anda. Untuk Windows, lokasi pemasangan SDK biasanya`\Program Files (x86)\aws-cpp-sdk-all\`. Sintaks perintah: 

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

   Untuk cara lainnya untuk memodifikasi keluaran build, lihat [CMakeParameter](cmake-params.md).

   Untuk menghasilkan file build, lakukan salah satu hal berikut:
   + **Hasilkan file build (all Layanan AWS)***: Untuk membangun seluruh SDK, jalankan cmake, tentukan apakah akan membuat versi *Debug* atau Rilis.* Contoh:

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

     
   + **Menghasilkan file build (subset Layanan AWS)**: Untuk membuat hanya paket layanan atau layanan tertentu untuk SDK, tambahkan CMake [BUILD\$1ONLY](cmake-params.md#cmake-build-only) parameter, dengan nama layanan yang dipisahkan dengan titik koma. Contoh berikut hanya membangun paket layanan Amazon S3:

     ```
     cmake ..\aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DBUILD_ONLY="s3" -DCMAKE_PREFIX_PATH="C:\Program Files (x86)\aws-cpp-sdk-all"
     ```
   + **Hasilkan file build (dengan curl)**: Setelah menyelesaikan prasyarat curl, tiga opsi baris perintah cmake tambahan diperlukan untuk menyertakan dukungan curl di SDK:,, dan. [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) Contoh: 

     ```
     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"
     ```
**catatan**  
Jika Anda mendapatkan kesalahan Gagal membangun pustaka pihak ketiga, periksa versi Anda CMake dengan menjalankan**cmake --version**. Anda harus menggunakan versi CMake minimum 3.13. 

1. Bangun binari SDK. Jika Anda membangun seluruh SDK, langkah ini bisa memakan waktu satu jam atau lebih. Sintaks perintah: 

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

   ```
   cmake --build . --config=Debug
   ```
**catatan**  
Jika Anda menemukan kesalahan Eksekusi kode tidak dapat melanjutkan... dll tidak ditemukan. Menginstal ulang program dapat memperbaiki masalah ini.” , coba lagi `cmake` perintahnya lagi.

1. Buka prompt perintah dengan hak **administrator** untuk menginstal SDK di lokasi yang ditentukan sebelumnya menggunakan parameter. `CMAKE_PREFIX_PATH` Sintaks perintah: 

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

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

## Membangun untuk Android di Windows
<a name="building-for-android"></a>

Untuk membangun untuk Android, tambahkan `-DTARGET_ARCH=ANDROID` ke `cmake` baris perintah Anda. AWS SDK untuk C\$1\$1 Termasuk file CMake toolchain yang mencakup apa yang Anda butuhkan dengan mereferensikan variabel lingkungan yang sesuai ()`ANDROID_NDK`.

Untuk membangun SDK for Android di Windows, Anda harus `cmake` menjalankan dari prompt perintah pengembang Visual Studio (2015 atau yang lebih baru). Anda juga perlu NMAKE [NMAKE](https://docs.microsoft.com/en-us/cpp/build/reference/nmake-reference?view=msvc-160) diinstal dan perintah **`git`**dan **`patch`**di jalur Anda. Jika Anda telah menginstal git pada sistem Windows, kemungkinan besar Anda akan menemukannya **`patch`**di direktori saudara (`.../Git/usr/bin/`). Setelah Anda memverifikasi persyaratan ini, baris `cmake` perintah Anda akan sedikit berubah untuk menggunakan NMAKE.

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

NMAKE dibangun secara serial. Untuk membangun lebih cepat, kami sarankan Anda menginstal JOM sebagai alternatif untuk NMAKE, dan kemudian mengubah `cmake` pemanggilan sebagai berikut:

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

Untuk contoh aplikasi, lihat [Menyiapkan aplikasi Android dengan AWS SDK untuk C\$1\$1](https://aws.amazon.com/blogs/developer/setting-up-an-android-application-with-aws-sdk-for-c/)

# Membangun AWS SDK untuk C\$1\$1 di Linux/macOS
<a name="setup-linux"></a>

Untuk mengaturnya AWS SDK untuk C\$1\$1, Anda dapat membuat SDK sendiri langsung dari sumbernya atau mengunduh pustaka menggunakan pengelola paket.



Sumber SDK dipisahkan menjadi paket individual berdasarkan layanan. Menginstal seluruh SDK dapat memakan waktu hingga satu jam. Menginstal hanya subset layanan tertentu yang digunakan program Anda mengurangi waktu instalasi dan juga mengurangi ukuran pada disk. Untuk memilih layanan mana yang akan diinstal, Anda perlu mengetahui nama paket dari setiap layanan yang digunakan program Anda. Anda dapat melihat daftar direktori paket di [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp)on GitHub. Nama paket adalah akhiran dari nama direktori untuk layanan. 

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

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

Anda memerlukan minimal 4 GB RAM untuk membangun beberapa AWS klien yang lebih besar. SDK mungkin gagal dibangun di jenis instans Amazon EC2 t2.micro*, t2.small,* dan *jenis* instans kecil lainnya karena memori tidak mencukupi.

Untuk menggunakan AWS SDK untuk C\$1\$1, Anda memerlukan salah satu dari yang berikut ini:
+  GNU Compiler Collection (GCC) 4.9 atau yang lebih baru, atau
+  Dentang 3.3 atau yang lebih baru.

## Persyaratan Tambahan untuk Sistem Linux
<a name="additional-requirements-for-linux-systems"></a>

Anda harus memiliki file header (`-dev`paket) untuk`libcurl`,,,`libopenssl`, dan `libuuid``zlib`, secara opsional, `libpulse` untuk dukungan Amazon Polly. Anda dapat menemukan paket dengan menggunakan manajer paket sistem Anda.

**Untuk menginstal paket pada sistem berbasis *Debian/Ubuntu***
+ 

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

**Untuk menginstal paket pada *sistem Linux/Redhat/Fedora/CentOS berbasis Amazon***
+ 

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

## Membangun SDK dari Sumber
<a name="setup-linux-from-source"></a>

Anda dapat membangun SDK dari sumber menggunakan alat baris perintah sebagai alternatif untuk menggunakan vcpkg. Dengan menggunakan metode ini, Anda dapat menyesuaikan build SDK. Untuk informasi tentang opsi yang tersedia, lihat [CMake Parameter](cmake-params.md).

**Untuk membangun SDK dari sumber**

1. Instal [CMake](https://cmake.org/)(versi minimum 3.13) dan alat build yang relevan untuk platform Anda. Disarankan untuk menambahkan `cmake` ke Anda`PATH`. Untuk memeriksa versi Anda CMake, buka command prompt dan jalankan perintah **cmake --version**

1. Dalam prompt perintah, navigasikan ke folder tempat Anda ingin menyimpan SDK.

1. Dapatkan kode sumber terbaru.

   Versi 1.11 menggunakan submodul git untuk membungkus dependensi eksternal. Ini termasuk [pustaka CRT](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html) yang dijelaskan dalam Panduan *Referensi Alat AWS SDKs dan*.

   Unduh atau kloning sumber SDK dari [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp)pada: GitHub
   + Kloning dengan Git: HTTPS

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

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

1. Sebaiknya simpan file build yang dihasilkan di luar direktori sumber SDK. Buat direktori baru untuk menyimpan file build dan navigasikan ke folder itu.

   ```
   mkdir sdk_build
   cd sdk_build
   ```

1. Hasilkan file build dengan menjalankan`cmake`. Tentukan pada baris `cmake` perintah apakah akan membangun versi *Debug* atau *Rilis*. Pilih `Debug` seluruh prosedur ini untuk menjalankan konfigurasi debug kode aplikasi Anda. Pilih `Release` seluruh prosedur ini untuk menjalankan konfigurasi rilis kode aplikasi Anda. Sintaks perintah: 

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

   Untuk cara lainnya untuk memodifikasi keluaran build, lihat [CMakeParameter](cmake-params.md).
**catatan**  
Saat membangun di Mac dengan sistem file case-insensitive, periksa output `pwd` perintah di direktori tempat Anda menjalankan build. Pastikan bahwa `pwd` output menggunakan kasus campuran untuk nama direktori seperti `/Users` dan`Documents`.

   Untuk menghasilkan file build, lakukan salah satu hal berikut:
   + **Hasilkan file build (all Layanan AWS)***: Untuk membangun seluruh SDK, jalankan cmake, tentukan apakah akan membuat versi *Debug* atau Rilis.* Contoh:

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

     
   + **Menghasilkan file build (subset Layanan AWS)**: Untuk membuat hanya paket layanan atau layanan tertentu untuk SDK, tambahkan CMake [BUILD\$1ONLY](cmake-params.md#cmake-build-only) parameter, dengan nama layanan yang dipisahkan dengan titik koma. Contoh berikut hanya membangun paket layanan Amazon S3:

     ```
     cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_ONLY="s3"
     ```
**catatan**  
Jika Anda mendapatkan kesalahan Gagal membangun pustaka pihak ketiga, periksa versi Anda CMake dengan menjalankan**cmake --version**. Anda harus menggunakan versi CMake minimum 3.13. 

1. Bangun binari SDK. Jika Anda membangun seluruh SDK, operasi dapat memakan waktu satu jam atau lebih. 

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

1. Instal SDK. Anda mungkin perlu meningkatkan hak istimewa tergantung pada lokasi yang Anda pilih untuk dipasang.

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

## Membangun untuk Android di Linux
<a name="building-for-android"></a>

Untuk membangun untuk Android, tambahkan `-DTARGET_ARCH=ANDROID` ke `cmake` baris perintah Anda. AWS SDK untuk C\$1\$1 Termasuk file CMake toolchain yang mencakup apa yang Anda butuhkan dengan mereferensikan variabel lingkungan yang sesuai ()`ANDROID_NDK`. Untuk contoh aplikasi, lihat [Menyiapkan aplikasi Android dengan AWS SDK untuk C\$1\$1](https://aws.amazon.com/blogs/developer/setting-up-an-android-application-with-aws-sdk-for-c/)

# Membuat aplikasi sederhana menggunakan AWS SDK for C\$1\$1
<a name="build-cmake"></a>

 [CMake](https://cmake.org/)adalah alat build yang Anda gunakan untuk mengelola dependensi aplikasi Anda dan untuk membuat makefile yang cocok untuk platform yang Anda bangun. Anda dapat menggunakan CMake untuk membuat dan membangun proyek menggunakan AWS SDK untuk C\$1\$1.

Contoh ini melaporkan bucket Amazon S3 yang Anda miliki. Memiliki bucket Amazon S3 di AWS akun Anda tidak diperlukan untuk contoh ini, tetapi akan jauh lebih menarik jika Anda memiliki setidaknya satu. Lihat [Membuat Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon* jika Anda belum memilikinya.

## Langkah 1: Tulis kodenya
<a name="setting-up-a-cmake-project"></a>

Contoh ini terdiri dari satu folder yang berisi satu file sumber (`hello_s3.cpp`) dan satu `CMakeLists.txt` file. Program ini menggunakan Amazon S3 untuk melaporkan informasi bucket penyimpanan. Kode ini juga tersedia di [Repositori Contoh AWS Kode](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3/hello_s3) di. GitHub 

Anda dapat mengatur banyak opsi dalam file konfigurasi `CMakeLists.txt` build. Untuk informasi lebih lanjut, lihat [CMaketutorial](https://cmake.org/cmake-tutorial/) di CMake situs web. 

**catatan**  
Deep Dive: Pengaturan `CMAKE_PREFIX_PATH`  
Secara default, AWS SDK untuk C\$1\$1 pada macOS, Linux, Android dan platform non-Windows lainnya diinstal ke dalam `/usr/local` dan pada Windows diinstal ke dalam. `\Program Files (x86)\aws-cpp-sdk-all`  
Saat Anda menginstal AWS SDK ke lokasi standar ini, CMake secara otomatis menemukan sumber daya yang diperlukan. Namun, jika Anda menginstal AWS SDK ke lokasi kustom, Anda harus memberi tahu CMake di mana menemukan sumber daya berikut yang dihasilkan dari pembuatan SDK:  
`AWSSDKConfig.cmake`: File konfigurasi yang memberi tahu CMake cara menemukan dan menggunakan pustaka AWS SDK dalam proyek Anda. Tanpa file ini, CMake tidak dapat menemukan file header AWS SDK, menautkan ke pustaka AWS SDK, atau menyiapkan flag kompiler yang tepat.
(untuk versi 1.8 dan sebelumnya) Lokasi dependensi:`aws-c-event-stream`,, `aws-c-common` `aws-checksums`
Untuk mengatur jalur instalasi kustom:  

```
cmake -DCMAKE_PREFIX_PATH=/path/to/your/aws-sdk-installation /path/to/project/you/are/building
```
Jika Anda tidak menyetel `CMAKE_PREFIX_PATH` untuk instalasi kustom, build Anda akan gagal dengan kesalahan seperti “Tidak dapat ditemukan AWSSDK” ketika CMake mencoba untuk memproses `find_package(AWSSDK)` di Anda`CMakeLists.txt`.

**catatan**  
Deep Dive: Pustaka Runtime Windows  
Untuk menjalankan program Anda, beberapa DLLs diperlukan di lokasi yang dapat dieksekusi program Anda:`aws-c-common.dll`,`aws-c-event-stream.dll`,`aws-checksums.dll`,`aws-cpp-sdk-core.dll`,, serta spesifik apa pun DLLs berdasarkan komponen program Anda (contoh ini juga memerlukan `aws-cpp-sdk-s3` karena menggunakan Amazon S3). `if`Pernyataan kedua dalam `CMakeLists.txt` file menyalin pustaka ini dari lokasi instalasi ke lokasi yang dapat dieksekusi untuk memenuhi persyaratan ini. `AWSSDK_CPY_DYN_LIBS`adalah makro yang ditentukan oleh AWS SDK untuk C\$1\$1 yang menyalin SDK DLLs dari lokasi instalasi ke lokasi yang dapat dieksekusi dari program Anda. Jika ini tidak DLLs berada di lokasi yang dapat dieksekusi maka pengecualian runtime dari 'file tidak ditemukan' terjadi. Tinjau bagian `CMakeLists.txt` file ini untuk perubahan yang diperlukan untuk lingkungan unik Anda jika Anda mengalami kesalahan ini.

**Untuk membuat folder dan file sumber**

1. Buat and/or proyek `hello_s3` direktori untuk menyimpan file sumber Anda.
**catatan**  
Untuk melengkapi contoh ini di Visual Studio: pilih **Create New Project** dan kemudian pilih **CMake Project**. Beri nama proyek`hello_s3`. Nama proyek ini digunakan dalam `CMakeLists.txt` file.

1. Di dalam folder itu, tambahkan `hello_s3.cpp` file yang menyertakan kode berikut, yang melaporkan bucket Amazon S3 yang Anda miliki.

   ```
   #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. Tambahkan `CMakeLists.txt` file yang menentukan nama proyek Anda, executable, file sumber, dan pustaka tertaut. 

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

## Langkah 2: Membangun dengan CMake
<a name="building-with-cmake"></a>

CMake menggunakan informasi `CMakeLists.txt` untuk membangun program yang dapat dieksekusi.

Kami merekomendasikan untuk membangun aplikasi mengikuti praktik standar untuk IDE Anda.

**Untuk membangun aplikasi dari baris perintah**

1. Buat direktori tempat **`cmake`**akan membangun aplikasi Anda.

   ```
   mkdir my_project_build
   ```

1. Ubah ke direktori build dan jalankan **`cmake`**menggunakan jalur ke direktori sumber proyek Anda.

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

1. Setelah **`cmake`**membuat direktori build, Anda dapat menggunakan **`make`**(atau **`nmake`**di Windows), atau MSBUILD (`msbuild ALL_BUILD.vcxproj`atau`cmake --build . --config=Debug`) untuk membangun aplikasi Anda.

## Langkah 3: Jalankan
<a name="run-app"></a>

Saat Anda menjalankan aplikasi ini, aplikasi ini menampilkan output konsol yang mencantumkan jumlah total bucket Amazon S3 dan nama setiap bucket.

Sebaiknya jalankan aplikasi mengikuti praktik standar untuk IDE Anda.

**catatan**  
Ingatlah untuk masuk\$1 Jika Anda menggunakan IAM Identity Center untuk mengautentikasi, ingatlah untuk masuk menggunakan perintah. AWS CLI `aws sso login`

**Untuk menjalankan program melalui baris perintah**

1. Ubah ke direktori Debug tempat hasil build dibuat. 

1. Jalankan program menggunakan nama executable.

   ```
   hello_s3
   ```

Untuk contoh tambahan menggunakan AWS SDK untuk C\$1\$1, lihat[Contoh terpandu untuk memanggil Layanan AWS menggunakan AWS SDK for C\$1\$1](programming-services.md).

# Mendapatkan AWS SDK untuk C\$1\$1 dari manajer paket
<a name="sdk-from-pm"></a>

**penting**  
Jika Anda menggunakan manajer paket seperti homebrew atau vcpkg:  
Setelah memperbarui SDK for C\$1\$1 ke versi baru, Anda harus mengkompilasi ulang pustaka atau executable yang bergantung pada SDK.

Untuk mengaturnya AWS SDK untuk C\$1\$1, Anda dapat membuat SDK sendiri langsung dari sumbernya atau mengunduh pustaka menggunakan pengelola paket.



Sumber SDK dipisahkan menjadi paket individual berdasarkan layanan. Menginstal seluruh SDK dapat memakan waktu hingga satu jam. Menginstal hanya subset layanan tertentu yang digunakan program Anda mengurangi waktu instalasi dan juga mengurangi ukuran pada disk. Untuk memilih layanan mana yang akan diinstal, Anda perlu mengetahui nama paket dari setiap layanan yang digunakan program Anda. Anda dapat melihat daftar direktori paket di [https://github.com/aws/aws-sdk-cpp](https://github.com/aws/aws-sdk-cpp)on GitHub. Nama paket adalah akhiran dari nama direktori untuk layanan. 

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

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

Anda memerlukan minimal 4 GB RAM untuk membangun beberapa AWS klien yang lebih besar. SDK mungkin gagal dibangun di jenis instans Amazon EC2 t2.micro*, t2.small,* dan *jenis* instans kecil lainnya karena memori tidak mencukupi.

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

Untuk menggunakan AWS SDK untuk C\$1\$1 on Linux/macOS, Anda memerlukan salah satu dari yang berikut ini:
+  GNU Compiler Collection (GCC) 4.9 atau yang lebih baru, atau
+  Dentang 3.3 atau yang lebih baru.

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

Untuk menggunakan AWS SDK untuk C\$1\$1 pada Windows, Anda memerlukan salah satu dari yang berikut:
+ Microsoft Visual Studio 2015 atau yang lebih baru, 
+  GNU Compiler Collection (GCC) 4.9 atau yang lebih baru, atau
+  Dentang 3.3 atau yang lebih baru.

------

## Dapatkan SDK menggunakan vcpkg
<a name="setupwin-with-vcpkg"></a>

**penting**  
Distribusi vcpkg yang tersedia didukung oleh kontributor eksternal dan tidak disediakan melalui. AWS Versi terbaru selalu tersedia melalui [instalasi dari sumber](sdk-from-source.md).

[vcpkg](https://github.com/Microsoft/vcpkg) adalah manajer paket yang diperbarui dan dikelola oleh kontributor eksternal. Perhatikan bahwa manajer paket ini tidak disediakan melalui AWS dan mungkin tidak mencerminkan versi terbaru yang tersedia untuk AWS SDK untuk C\$1\$1. Ada penundaan antara kapan versi dirilis oleh AWS dan ketika tersedia melalui manajer paket eksternal. Versi terbaru selalu tersedia melalui [instalasi dari sumber](sdk-from-source.md).

Anda harus menginstal [vcpkg pada sistem](https://github.com/Microsoft/vcpkg) Anda.
+ Unduh dan bootstrap [vcpkg](https://github.com/Microsoft/vcpkg) dengan mengikuti petunjuk pada GitHub Readme vcpkg, mengganti opsi berikut saat diminta:
  + 

    Sebagai bagian dari instruksi tersebut, Anda dipandu untuk memasukkan:

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

    Untuk menginstal seluruh SDK, masukkan `.\vcpkg\vcpkg install "aws-sdk-cpp[*]" --recurse` atau tunjukkan hanya layanan spesifik SDK yang akan diinstal dengan menambahkan nama paket dalam tanda kurung, misalnya, `.\vcpkg\vcpkg install "aws-sdk-cpp[s3, ec2]" --recurse` 

  Output menampilkan pesan termasuk yang berikut:

  ```
  CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=C:/dev/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake"
  ```
+ Salin `-DCMAKE_TOOLCHAIN_FILE` perintah lengkap untuk digunakan CMake nanti. GitHub Readme vcpkg juga menginstruksikan di mana harus menggunakan ini untuk toolset Anda.
+ Anda mungkin juga perlu mencatat jenis konfigurasi build yang Anda instal melalui vcpkg. Output konsol menunjukkan konfigurasi build dan versi SDK. Contoh keluaran berikut menunjukkan konfigurasi build adalah “x86-windows” dan AWS SDK untuk C\$1\$1 versi yang diinstal adalah 1.8.

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

Setelah Anda menginstal AWS SDK untuk C\$1\$1, Anda dapat mengembangkan aplikasi Anda sendiri menggunakan SDK. Contoh yang ditunjukkan dalam [Membuat aplikasi sederhana](build-cmake.md) melaporkan ember Amazon S3 yang Anda miliki.

# Memecahkan masalah AWS SDK for C\$1\$1 build
<a name="troubleshooting-cmake"></a>

Saat membangun AWS SDK untuk C\$1\$1 from source, beberapa masalah build umum berikut mungkin muncul.

**Topics**
+ [

## CMake Kesalahan: Tidak dapat menemukan file konfigurasi paket yang disediakan oleh "AWSSDK”
](#could-not-find-package)
+ [

## CMake Kesalahan: Tidak dapat menemukan file muat (dan Anda menggunakan SDK versi 1.8)
](#could-not-load-file)
+ [

## CMake Kesalahan: Tidak dapat menemukan file muat
](#could-not-load-file2)
+ [

## Runtime Error: tidak dapat melanjutkan karena tidak `aws-*.dll` ditemukan
](#dll-was-not-found)

## CMake Kesalahan: Tidak dapat menemukan file konfigurasi paket yang disediakan oleh "AWSSDK”
<a name="could-not-find-package"></a>

CMake menimbulkan kesalahan berikut jika tidak dapat menemukan SDK yang diinstal.

```
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.
```

Untuk mengatasi kesalahan ini, beri tahu CMake di mana menemukan SDK yang diinstal (misalnya folder yang dihasilkan sebagai hasil dari instalasi SDK ([Windows](setup-windows.md), [Linux/macOS](setup-linux.md)). Masukkan perintah berikut sebelum panggilan pertama Anda ke `find_package()` dalam `CMakeLists.txt` file Anda. Lihat [Membuat aplikasi sederhana menggunakan AWS SDK for C\$1\$1](build-cmake.md) sebagai contoh. 

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

## CMake Kesalahan: Tidak dapat menemukan file muat (dan Anda menggunakan SDK versi 1.8)
<a name="could-not-load-file"></a>

CMake menimbulkan kesalahan berikut jika tidak dapat menemukan pustaka yang diinstal.

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

Untuk mengatasi kesalahan ini, beri tahu CMake di mana menemukan SDK yang diinstal (misalnya folder yang dihasilkan sebagai hasil dari instalasi SDK ([Windows](setup-windows.md), [Linux/macOS](setup-linux.md)). Masukkan perintah berikut sebelum panggilan pertama Anda ke `find_package()` dalam `CMakeLists.txt` file Anda. Lihat [Membuat aplikasi sederhana menggunakan AWS SDK for C\$1\$1](build-cmake.md) sebagai contoh. 

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

Solusi ini hanya untuk v1.8 SDK karena dependensi ini ditangani secara berbeda di versi yang lebih baru. Versi 1.9 mengatasi masalah ini dengan memperkenalkan lapisan perantara antara `aws-sdk-cpp` dan `aws-c-*` pustaka. Layer baru ini disebut`aws-crt-cpp`, dan merupakan submodule git dari SDK for C\$1\$1. `aws-crt-cpp`juga memiliki `aws-c-*` perpustakaan (termasuk`aws-c-common`,, `aws-checksums`` aws-c-event-stream`, dll.) sebagai submodul git sendiri. Hal ini memungkinkan SDK for C\$1\$1 untuk mendapatkan semua pustaka CRT secara rekursif dan meningkatkan proses build.

## CMake Kesalahan: Tidak dapat menemukan file muat
<a name="could-not-load-file2"></a>

CMake menimbulkan kesalahan berikut jika tidak dapat menemukan pustaka yang diinstal.

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

Untuk mengatasi kesalahan ini, beri tahu CMake untuk membangun pustaka bersama. Masukkan perintah berikut sebelum panggilan pertama Anda ke `find_package()` dalam `CMakeLists.txt` file Anda. Lihat [Membuat aplikasi sederhana menggunakan AWS SDK for C\$1\$1](build-cmake.md) sebagai contoh. 

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

## Runtime Error: tidak dapat melanjutkan karena tidak `aws-*.dll` ditemukan
<a name="dll-was-not-found"></a>

CMake menimbulkan kesalahan yang mirip dengan berikut ini jika tidak dapat menemukan DLL yang diperlukan.

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

Kesalahan ini terjadi karena pustaka atau executable yang diperlukan untuk SDK for C\$1\$1 tidak tersedia di folder yang sama dengan executable aplikasi Anda. Untuk mengatasi kesalahan ini, salin keluaran build SDK di lokasi yang dapat dieksekusi. Nama file DLL spesifik dari kesalahan akan bervariasi tergantung pada AWS layanan yang Anda gunakan. Lakukan *salah satu* hal berikut:
+ Salin isi `/bin` folder AWS SDK untuk C\$1\$1 instalasi ke folder build aplikasi Anda.
+ Dalam `CMakeLists.txt` file Anda, gunakan makro AWSSDK\$1CPY \$1DYN\$1LIBS untuk menyalinnya untuk Anda.

  Tambahkan panggilan ke salah satu `AWSSDK_CPY_DYN_LIBS(SERVICE_LIST "" ${CMAKE_CURRENT_BINARY_DIR})` atau `AWSSDK_CPY_DYN_LIBS(SERVICE_LIST "" ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE})` ke `CMakeLists.txt` file Anda untuk menggunakan makro ini untuk melakukan penyalinan untuk Anda. Lihat [Membuat aplikasi sederhana menggunakan AWS SDK for C\$1\$1](build-cmake.md) sebagai contoh.

  Pilih jalur penyalinan yang benar untuk lingkungan build Anda. Membangun melalui baris perintah sering menempatkan output build ke subfolder (`/Debug`), tetapi Visual Studio dan lainnya IDEs sering tidak. Verifikasi di mana output executable Anda berada, dan pastikan makro menyalin ke lokasi tersebut. Saat membuat jenis perubahan ini, sebaiknya hapus konten direktori keluaran build Anda sehingga Anda mendapatkan titik awal yang bersih untuk build berikutnya.