Разница в статической связи между aws-sdk-cpp 1.4 и 1.5 / 1.6 вызывает ошибку несоответствия? - PullRequest
0 голосов
/ 20 сентября 2018

У меня проблема с библиотеками Core и S3 и статическим связыванием Windows x64, которую я могу воспроизвести в небольшом консольном приложении в Visual Studio 2017 v15.8.4.

С библиотеками 1.4 (точные версии ниже), полученными от NuGet, обе версии моей программы x86 и x64 прекрасно связываются со связью AWSSDKCPP-Core и AWSSDKCPP-S3, установленной на статический.Если я обновлюсь до 1.5 или 1.6, то точно такой же проект отлично работает в x86, но в x64 есть ошибка ссылки:

Searching libraries
Searching C:\Users\Jeff\Documents\Visual Studio 2017\Projects\ConsoleApplication20\packages\AWSSDKCPP-S3.1.6.20060301.11\build\native\..\..\\build\native\lib\x64\Debug\v141\static\aws-cpp-sdk-s3.lib:
Found "public: __cdecl Aws::S3::S3Client::S3Client(class Aws::Auth::AWSCredentials const &,struct Aws::Client::ClientConfiguration const &,enum Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy,bool)" (??0S3Client@S3@Aws@@QEAA@AEBVAWSCredentials@Auth@2@AEBUClientConfiguration@Client@2@W4PayloadSigningPolicy@AWSAuthV4Signer@62@_N@Z)
Referenced in ConsoleApplication20.obj
Loaded aws-cpp-sdk-s3.lib(ub_S3.obj)
aws-cpp-sdk-s3.lib(ub_S3.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MTd_StaticDebug' in ConsoleApplication20.obj

Я не знаю, почему он считает значение RuntimeLibrary для aws-cpp-sdk-s3.lib является динамическим, когда он установлен на статический, и он связан в предыдущих версиях (и в x86 с той же версией).Могут ли статические библиотеки x64 в 1.5 / 1.6 иметь зависимость, которую они не должны иметь?Есть ли обходной путь?

Версии: AWSSDKCPP-Core 1.4.93 / 1.6.11 AWSSDKCPP-S3 1.4.20060301.93 / 1.6.20060301.11

1 Ответ

0 голосов
/ 09 октября 2018

Проблема была исправлена ​​в 1.6.24.

...