C ++ AWSCredentials:未定义的引用`Aws :: Free(void *)'

时间:2017-11-08 23:27:52

标签: c++ amazon-web-services

我正在通过阅读Stroustrup的书来学习C++,而我正在练习一些与工作相关的代码。

我需要编写一些小代码来调用Amazon Simple Systems Manager(如果我这样做的话,python需要大约5分钟,但这是为了学习)。

我需要做的第一件事是使用Access和Secret键创建一个credentials对象。事实证明这比我想象的更难!

#include <aws/core/Aws.h>
#include <aws/core/auth/AWSCredentialsProvider.h>
...
char const* AWS_ACCESS_KEY_ID = "aaaaaaa";
char const* AWS_SECRET_ACCESS_KEY = "bbbbb";

Aws::Auth::AWSCredentials creds(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY);

但是我收到以下错误:

In function `Aws::Allocator<char>::deallocate(char*, unsigned long)':
main.cpp: undefined reference to `Aws::Free(void*)'

我能想到的最好的问题是Aws::String应该如何运作?

根据文档typedef std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > >

我看了basic_string,那只是标准的图书馆字符串,除此之外,我迷失了。

1 个答案:

答案 0 :(得分:1)

以下是我使用Amazon C ++ SDK测试凭据的简单程序所包含的标题:

#include <stdio.h>
#include <tchar.h>
#include <aws/core/Aws.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/core/utils/logging/DefaultLogSystem.h>
#include <aws/core/utils/logging/AWSLogging.h>
#include <aws/core/auth/AWSCredentialsProvider.h>
#include <aws/core/auth/AWSCredentialsProviderChain.h>

在您的链接器中包含aws-cpp-sdk-core.lib库。

注意:我正在使用Visual Studio构建我的项目。