You need 4 GB of RAM to build some of the larger AWS clients. The SDK might fail to
build on Amazon EC2 instance types t2.micro, t2.small, and other small instance types due to
insufficient memory.

Additional Requirements for Linux Systems

To compile on Linux, you must have the header files (-dev packages) for libcurl, libopenssl,
libuuid, zlib, and optionally, libpulse for Amazon Polly support. Typically, you'll find the
packages in your system's package manager.

Select the packages to use by searching for a particular service or library name.
For example,
you could use a search term such as aws s3 native or, because AWS SDK for C++ libraries
are named consistently, use AWSSDKCPP-service name to add a library for a particular
service to your project.

Choose Install to install the libraries and add them to your project.

When you build your project, the correct binaries are automatically included for each
runtime/architecture configuration you use—you won't need to manage these dependencies
yourself.

Building the SDK from Source

If you don't use Visual Studio (or don't want to use NuGet), you can build the SDK
from source to
set it up on your development system. This method also enables you to customize your
SDK build—see CMake Parameters for the available options.

Building for Android

To build for Android, add -DTARGET_ARCH=ANDROID to your cmake command line. The AWS SDK for C++
includes a cmake toolchain file that should cover what's needed, assuming you've set the
appropriate environment variables (ANDROID_NDK).

Android on Windows

Building for Android on Windows requires additional setup. In particular, you have
to run cmake
from a Visual Studio (2013 or later) developer command prompt. You'll also need the
commands
git and patch in your path. If you have git installed on a Windows system,
you'll most likely find patch in a sibling directory (.../Git/usr/bin/). Once
you've verified these requirements, your cmake command line will change slightly to use nmake.:

Copy

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

nmake builds targets in a serially. To make things go more quickly, we recommend installing
JOM as
an alternative to nmake, and then changing the cmake invocation as follows.: