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

C++ AWSCredentials : undefined reference to `Aws::Free(void*)'

本文关键字:未定义 引用 void Free AWSCredentials Aws C++      更新时间:2023-10-16

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

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

我需要做的第一件事是创建一个具有Access和Secret密钥的凭据对象。事实证明,这比我想象的要难!

#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,这只是标准的库字符串,除此之外我就迷失了方向。

以下是我为使用AmazonC++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来构建我的项目。