Skip to content
Andrew Tang edited this page Aug 20, 2019 · 7 revisions

Welcome to the AWS C++ SDK wiki!

General FAQ

How do I build the SDK from source?

See the detailed step-by-step guide to get started.

How do I turn on logging?

The type of logger and the verbosity are specified during the SDK initialization in the SDKOptions argument.
Specifying any verbosity level other than LogLevel::Off will turn on the default logger.
The default logger will write to the filesystem; the file is named using the following convention aws_sdk_YYYY-MM-DD-HH.log. The logger creates a new file on the hour. There are six levels of verbosity:

  1. Off (the default)
  2. Fatal
  3. Error
  4. Warn
  5. Info
  6. Debug
  7. Trace

For example, to turn on Debug logs:

Aws::SDKOptions options;
options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug;
Aws::InitAPI(options);
// ...
Aws::ShutdownAPI(options);

The SDK also ships with a console logger that will print messages to the standard output. To use the console logger instead of the default filesystem logger:

#include <aws/core/utils/logging/ConsoleLogSystem.h>

using namespace Aws::Utils::Logging;
Aws::SDKOptions options;
options.loggingOptions.logLevel = LogLevel::Debug;
options.loggingOptions.logger_create_fn = [] { return std::make_shared<ConsoleLogSystem>(LogLevel::Trace); };
Aws::InitAPI(options);
// ...
Aws::ShutdownAPI(options);

What compilers do you support?

Currently we support the following compilers:

  1. GCC 4.9.x and later
  2. Clang 3.3 and later
  3. Visual Studio 2015 and later

What versioning scheme do you follow?

Major.Minor.Patch

  • Major increments are reserved to overhauls (we haven't needed this yet)
  • Minor increments are used when source-level breaking changes are introduced. We try our best to minimize this.
  • Patch increments are used for the frequent service updates.

What is the deal with InitAPI and ShutdownAPI?

Coming soon

Why do you have Aws::String? How is it different from std::string?

Coming soon

CMake build options

In addition to all the standard CMake options you can pass, the following options are specific to the SDK.

-DBUILD_ONLY

This option allows you to build selective services rather than the whole SDK. This can be quite handy if all you're interested is using a single service, for example, to build just S3 & Lambda you can pass -DBUILD_ONLY="s3,lambda"

-DBUILD_DEPS

By default this option is turned on. To build the third-party dependencies separately from the SDK build, pass OFF.

-DREGENERATE_CLIENTS

By default this option is turned off. To re-generate the service clients as part of the build, pass ON. Note: This invokes the code generator, which is built using Java (I know). You must have the JDK, maven and python available on the machine when regenerating clients.