Programming/C++
[AWSSDKCPP] Assertion Failed! aws-cpp-sdk-core.dll - s_HttpClientFactory
비만오리
2021. 2. 1. 11:17
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를 호출해 마무리하면 됩니다.
반응형