本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Linux/macOS 上构建 适用于 C++ 的 AWS SDK
要设置适用于 C++ 的 AWS SDK,您可以直接从源代码构建 SDK,也可以使用程序包管理器下载库。
SDK 源代码按服务划分为单独的程序包。安装整个 SDK 最多可能需要一个小时。仅安装程序使用的特定服务子集可以缩短安装时间,还可以减小所需磁盘空间。若要选择安装哪些服务,您需要知道程序所使用的每个服务的程序包名称。您可以在 GitHub 上的 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
先决条件
要构建一些较大的 AWS 客户端,您至少需要 4 GB 的 RAM。由于内存不足,该 SDK 可能无法在 Amazon EC2 实例类型 t2.micro、t2.small 和其他小型实例类型上构建。
要使用 适用于 C++ 的 AWS SDK,您需要以下某一项:
-
GNU 编译器集合(GCC)4.9 或更高版本,或
-
Clang 3.3 或更高版本。
针对 Linux 系统的其他要求
您必须为 libcurl、libopenssl、libuuid、zlib 添加标头文件(-dev 程序包),并为 Amazon Polly 支持添加 libpulse(可选)。您可以使用系统的程序包管理器查找程序包。
在基于 Debian/Ubuntu 的系统上安装程序包
-
sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
在基于 Amazon Linux/Redhat/Fedora/CentOS 的系统上安装程序包
-
sudo yum install libcurl-devel openssl-devel libuuid-devel pulseaudio-libs-devel
从源代码构建 SDK
除了使用 vcpkg 之外,您也可以使用命令行工具从源代码构建 SDK。使用此方法,您可以自定义 SDK 构建。有关可用选项的信息,请参阅 CMake 参数。
从源代码构建 SDK
-
安装 CMake
(最低版本 3.13)和适用于您平台的相关构建工具。建议将 cmake添加到您的PATH。要检查您的 CMake 版本,请打开命令提示符并运行命令cmake --version -
在命令提示符下,导航至希望存储 SDK 的文件夹。
-
获取最新源代码。
版本 1.11 使用 git 子模块来封装外部依赖项。这包括《AWS SDK 和工具参考指南》中描述的 CRT 库。
从 GitHub 上的
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
-
-
建议您将生成的构建文件存储在 SDK 源目录之外。创建一个用于存储构建文件的新目录并导航到该文件夹。
mkdirsdk_buildcdsdk_build -
通过运行
cmake生成构建文件。在cmake命令行上指定是编译调试版还是发布版本。在此过程中选择Debug以运行应用程序代码的调试配置。在此过程中选择Release以运行应用程序代码的发布配置。命令语法:{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}有关修改构建输出的更多方法,请参阅 CMake 参数。
注意
在文件系统不区分大小写的 Mac 上构建时,请在运行构建版本的目录中检查
pwd命令的输出。确保pwd输出中的目录名称使用大小写混合形式,例如/Users和Documents。要生成构建文件,请执行以下操作之一:
-
生成构建文件(全部 AWS 服务):要构建整个 SDK,请运行 cmake,指定是构建调试版本还是发布版本。例如:
cmake../aws-sdk-cpp-DCMAKE_BUILD_TYPE=Debug-DCMAKE_PREFIX_PATH=/usr/local/-DCMAKE_INSTALL_PREFIX=/usr/local/ -
生成构建文件(部分 AWS 服务):要仅为 SDK 生成一个或多个特定的服务包,请添加 CMake BUILD_ONLY 参数,服务名称用分号分隔。以下示例仅构建 Amazon S3 服务包:
cmake../aws-sdk-cpp-DCMAKE_BUILD_TYPE=Debug-DCMAKE_PREFIX_PATH=/usr/local/-DCMAKE_INSTALL_PREFIX=/usr/local/-DBUILD_ONLY="s3"
注意
如果您遇到错误
Failed to build third-party libraries,请运行cmake --version检查您的 CMake 版本。您必须使用 CMake 最低版本 3.13。 -
-
构建 SDK 二进制文件。如果您要构建整个 SDK,则此操作可能需要一小时或更长时间。
cmake --build . --config=Debug -
安装 SDK。根据您选择的安装位置,您可能需要升级权限。
cmake --install . --config=Debug
在 Linux 上为 Android 系统构建
要针对 Android 进行构建,请将 -DTARGET_ARCH=ANDROID 添加到 cmake 命令行中。适用于 C++ 的 AWS SDK 包括一个 CMake 工具链文件,该文件通过引用相应的环境变量(ANDROID_NDK)来包含您需要的内容。有关示例应用程序,请参阅使用适用于 C++ 的 AWS SDK 设置 Android 应用程序