开始使用适用于 C++ 的 AWS SDK 代码示例 - 适用于 C++ 的 AWS SDK

开始使用适用于 C++ 的 AWS SDK 代码示例

代码示例的结构

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

运行示例功能
  1. 从 GitHub 上的AWS代码示例存储库中下载所需的代码示例。

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

  3. 构建项目,如开始使用适用于 C++ 的 AWS SDK 中的入门示例所示。请注意,构建项目会为项目中的每个源文件生成一个可执行文件。

  4. 运行所选功能的可执行文件。

    • 在命令提示符下,使用基于 *.cpp 文件名的可执行文件运行该程序。

    • 如果您在 IDE 中工作,请选择要演示的功能的 .cpp 文件并将其选为启动选项(或启动对象)。

单元测试

示例测试是使用 GoogleTest 框架编写的。要了解更多信息,请参阅 GoogleTest 网站上的 GoogleTest Primer

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

CMakeLists.txt 文件

每项服务的文件夹都包含一个名为 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 中构建和调试代码示例

构建并运行 Amazon S3 代码示例
  1. 获取 Amazon S3 示例源代码。此过程使用 使用适用于 C++ 的 AWS SDK 的 Amazon S3 代码示例 代码示例通过 Visual Studio 启动并运行。

  2. 在 Windows 资源管理器中,导航到 s3 文件夹(例如 \aws-doc-sdk-examples\cpp\example_code\s3)。

  3. 右键单击 s3 示例文件夹,然后选择使用 Visual Studio 打开。  适用于 CMake 项目的 Visual Studio 没有“项目”文件,整个文件夹即为项目本身。

  4. 在 Visual Studio 顶部菜单的配置选择器下拉列表中,确保所选配置与您从源代码构建 SDK 时选择的构建类型相匹配。  例如,若您在从源代码构建 SDK 时使用了调试模式(即 SDK 安装指南中 CMake 命令行里的 -DCMAKE_BUILD_TYPE=Debug),则应选择调试配置。

  5. 打开文件 CMakeLists.txt

  6. 单击保存。每次对 CMakeLists.txt 文件单击保存时,Visual Studio 都会刷新 CMake 生成的文件。  如果显示了输出选项卡,即可查看此次生成过程的日志消息结果。

    • 输出选项卡中有一个下拉框,指出“显示输出的来源:”,默认情况下,会选中 CMake 选项。

    • 最后一条消息输出应显示“CMake 生成已完成”。 

    • 如果最后一条消息不是这样的,则说明 CMake 文件有问题。在此问题得到解决之前,请勿继续执行后续步骤。  请参阅排查适用于 C++ 的 AWS SDK 问题

    • 请注意,CMake 使用 CMake 缓存来提高速度。如果您正在排查 CMake 问题,您会希望确保一个“干净的环境”,这样您得到的错误消息才能真正反映出您最近的更改。  在解决方案资源管理器中,右键单击 CMakeLists.txt 并选择 CMake 缓存,然后选择删除缓存。在逐步排查 CMake 问题的过程中,请经常这样做。

  7. 要从 Visual Studio 中生成和运行示例,Visual Studio 会将可执行文件放在与命令行不同的文件夹结构中。要运行代码,必须将 SDK 可执行文件复制到正确的位置。  找到 CMakeLists 文件中标记“TODO”的行(大约第 40 行),并选择针对 Visual Studio 使用的注释版本。Visual Studio 不使用专用于构建类型的子文件夹,因此不包括该子文件夹。  在 CMakeLists.txt 文件中,将注释掉的行切换为适用于 Visual Studio 的版本。

  8. 删除 CMake 缓存(如上所述),在 CMakeLists.txt 文件中单击以选择/激活选项卡,然后再次在 CMakeLists.txt 文件上选择保存以启动 CMake 构建文件的生成过程。

  9. 打开您要运行的“程序”的源文件。

    • 例如,打开 list_buckets.cpp

    • Amazon S3 示例文件夹的代码结构设计为,每个展示的 Amazon S3“功能”都在一个专门针对该功能的独立可执行文件中进行演示。  例如,list_buckets.cpp 将成为仅演示存储桶列表的可执行文件。

  10. 在顶部菜单中,选择构建,然后选择全部构建

    • 输出选项卡的显示输出的来源应反映构建的选择,并显示所有构建和链接消息。

    • 最后一条输出应为:“构建全部成功。

    • 现在,将为每个单独的源文件生成可执行文件。  您可以在构建输出目录中确认这一点(例如 \aws-doc-sdk-examples\cpp\example_code\s3\out\build\x64-Debug)。

    • 请注意,可执行文件以“run_”为前缀,因为 CMakeLists.txt 文件规定了这一点。

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

  12. 单击绿色箭头表示的运行按钮选择启动项

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

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