

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 适用于 C\$1\$1 的 AWS SDK 代码示例入门
<a name="getting-started-code-examples"></a>

## 代码示例的结构
<a name="structure"></a>

Github 上的 [C\$1\$1 示例文件夹](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code)包含每项 AWS 服务的项目文件夹。通常，文件夹中的各个 .cpp 源文件演示了该服务的特定功能或操作。例如，对于 Amazon DynamoDB，从数据库获取**项目和将项目**上传到数据库是两种不同的操作类型，因此 DynamoDB 文件夹中针对每种操作有一个单独的文件：`get_item.cpp` 和 `put_item.cpp`。每个 .cpp 文件都包含一个 `main()` 函数作为独立可执行文件的入口点。项目可执行文件在构建系统指定的文件夹中生成，每个示例源文件对应一个可执行文件。可执行文件的文件名遵循平台的约定，例如 `{name}.exe` 或只是 `{name}`，并且任何自定义前缀都 `CMakeLists.txt` 适用，例如 `run_`。

**运行示例功能**

1. 从上的 “代码示例[存储库” 下载所需的AWS 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code) GitHub。

1. 打开一个 .cpp 文件以浏览其 `main()` 函数和任何被调用的方法。

1. 构建项目，如[开始使用 适用于 C\$1\$1 的 AWS SDK](getting-started.md) 中的入门示例所示。请注意，构建项目会为项目中的每个源文件生成一个可执行文件。

1. 运行所选功能的可执行文件。
   + 在命令提示符下，使用基于 `*.cpp` 文件名的可执行文件运行该程序。
   + 如果您在 IDE 中工作，请选择要演示的功能的 `.cpp` 文件并将其选为启动选项（或启动对象）。

### 单元测试
<a name="unittest"></a>

示例测试是使用 GoogleTest 框架编写的。要了解更多信息，请参阅 GoogleTest 网站上的 P [GoogleTestri](https://google.github.io/googletest/primer.html) mer。

每个示例的单元测试都位于包含其自己的 `CMakeLists.txt` 文件的 `tests` 子文件夹中。每个示例源文件都有一个名为 `gtest_<source file>` 的相应测试文件。子文件夹的测试可执行文件名为 `<AWS 服务>_gtests`。

### CMakeLists.txt 文件
<a name="CMakeLists"></a>

每项服务的文件夹都包含一个名为 `CMakeLists.txt` 的文件。其中许多文件包含类似于以下内容的构造：

```
foreach(EXAMPLE IN LISTS EXAMPLES)
         add_executable(${EXAMPLE} ${EXAMPLE}.cpp)
         target_link_libraries(${EXAMPLE} aws-cpp-sdk-email aws-cpp-sdk-core)
endforeach()
```

 对于文件夹中的每个 .cpp 文件，`CMakeLists.txt` 文件都会生成一个可执行文件（cmake：`add_executable`），其名称基于源代码文件的名称，不带文件扩展名。

## 在 Visual Studio 中构建和调试代码示例
<a name="buildingOnVisualStudio"></a>

**构建并运行 Amazon S3 代码示例**

1. 获取 Amazon S3 示例源代码。此过程使用 [使用 Amazon S3 代码示例 适用于 C\$1\$1 的 AWS SDK](examples-s3.md) 代码示例通过 Visual Studio 启动并运行。

1. 在 Windows 资源管理器中，导航到 `s3` 文件夹（例如 `\aws-doc-sdk-examples\cpp\example_code\s3`）。

1. 右键单击 `s3` 示例文件夹，然后选择**使用 Visual Studio 打开**。  用于 CMake项目的 Visual Studio 没有 “项目” 文件，而是整个文件夹。

1. 在 Visual Studio 顶部菜单的**配置选择器**下拉列表中，确保所选配置与您从源代码构建 SDK 时选择的构建类型相匹配。  例如，如果您使用**调试**从源代码构建（`-DCMAKE_BUILD_TYPE=Debug`在 SDK 安装说明中的 CMake 命令行中），则应选择调试配置。

1. 打开文件 `CMakeLists.txt`。

1. 单击**保存**。每次在`CMakeLists.txt`文件上单击 “**保存**” 时，Visual Studio 都会刷新 CMake生成的文件。  如果显示了**输出**选项卡，即可查看此次生成过程的日志消息结果。
   + “**输**出” 选项卡中有一个下拉框，上面写着：“**显示输出来自:**”，默认情况下**CMake**应选择该选项。
   + 最后一条消息输出应显示 “**CMake 生成已完成。** “  
   + 如果最后一条消息不是这样，则说明 CMake 文件有问题。在此问题得到解决之前，请勿继续执行后续步骤。  请参阅[解决 AWS 适用于 C\$1\$1 的 SDK 编译问题](troubleshooting-cmake.md)。
   + 请注意，使用 CMake 缓存 CMake 来提高速度。如果你正在解决 CMake 问题，你需要确保 “一目了然”，这样你得到的错误消息才能真正反映出你最近的更改。  在解决方案资源管理器中，右键单击`CMakeLists.txt`并选择**CMake缓存**，然后选择**删除缓存**。在逐步 CMake 解决问题时，请经常这样做。

1. 要从 Visual Studio 中生成和运行示例，Visual Studio 会将可执行文件放在与命令行不同的文件夹结构中。要运行代码，必须将 SDK 可执行文件复制到正确的位置。  找到 CMake列表文件的 “`TODO`” 行（约第 40 行），然后选择注释的那一行以便在 Visual Studio 中使用。Visual Studio 不使用专用于构建类型的子文件夹，因此不包括该子文件夹。  在 `CMakeLists.txt` 文件中，将注释掉的行切换为适用于 Visual Studio 的版本。

1. 删除 CMake 缓存（如上所述），在`CMakeLists.txt`文件中单击选项卡，然后再次在`CMakeLists.txt`文件上选择 “**保存**” 以启动 CMake 生成文件的生成。 select/activate 

1. 打开您要运行的“程序”的源文件。
   + 例如，打开 `list_buckets.cpp`。
   + Amazon S3 示例文件夹的代码结构设计为，每个展示的 Amazon S3“功能”都在一个专门针对该功能的独立可执行文件中进行演示。  例如，`list_buckets.cpp` 将成为仅演示存储桶列表的可执行文件。

1. 在顶部菜单中，选择**构建**，然后选择**全部构建**。
   + **输出**选项卡的**显示输出的来源**应反映**构建**的选择，并显示所有构建和链接消息。
   + 最后一条输出应为：“**构建全部成功。**” 
   + 现在，将为每个单独的源文件生成可执行文件。  您可以在构建输出目录中确认这一点（例如 `\aws-doc-sdk-examples\cpp\example_code\s3\out\build\x64-Debug`）。
   + 请注意，可执行文件以“run\$1”为前缀，因为 `CMakeLists.txt` 文件规定了这一点。

1. 在顶部菜单中，有一个**绿色箭头**和一个用于选择**调试目标**的**下拉选择器**。  选择 `run_list_buckets.exe`。

1. 单击**绿色箭头表示的运行按钮**以**选择启动项**。

1. 将会打开 Visual Studio 调试控制台窗口并显示代码的输出。

1. 按任意键关闭窗口，或手动关闭窗口，以终止程序。  您也可以在代码中设置断点，当您再次单击运行时，断点就会被命中。