1. 현상
컴파일에서 문제는 없지만 런타임에서 AWS SDK를 사용하는 도중에 aws-cpp-sdk-core.dll에서 Assertion failed가 발생합니다.
위와 같은 화면과 함께 실행이 중단되며 IDE에 별도의 오류는 찍혀있지 않습니다. 해당 오류는 Aws::Auth::AWSCredentials, Aws::S3::S3Client를 생성할 때 발생했습니다.
2. 원인 및 수정
aws-sdk-cpp GitHub의 Issue에서 원인과 해결방법을 찾을 수 있었습니다: Assertion failed: (s_HttpClientFactory), function CreateHttpRequest
Bu11etmagnet의 멘션처럼 cpp에서 aws-sdk를 사용하기 위해서는 먼저 InitAPI를 호출해야만 합니다. InitAPI를 호출하지 않고 aws-sdk를 사용하려고 했기 때문에 위와 같은 오류가 발생했습니다. aws-sdk 사용에 앞서 다음 코드를 수행해 주시면 됩니다.
Aws::SDKOptions awsOptions;
// ...
Aws::InitAPI(awsOptions);
// ...
Aws::ShutdownAPI(awsOptions);
awsOption를 먼저 선언 후 aws-sdk를 사용하기 전에 IniAPI를 호출합니다. 모든 API 사용이 끝난 뒤 더 이상 사용하지 않을 땐 ShutdownAPI를 호출해 마무리하면 됩니다.
반응형
'Programming > C++' 카테고리의 다른 글
[MFC] mfc100ud.lib 파일을 열 수 없습니다. (0) | 2021.10.27 |
---|---|
[C++] Fatal error C1083 포함 파일을 열 수 없습니다. 'ctype.h': No such file or directory (0) | 2021.07.20 |
[AWSSDKCPP] Aws::MakeShared 에러 (0) | 2021.01.28 |
[C++] C++에서 AWS SDK 직접 빌드해 사용하기. (0) | 2021.01.05 |
[C++] Error: LNK1117 'VERSION: 1.0.0.0' 옵션에 구문 오류가 있습니다. (0) | 2020.11.19 |