aws-sdk-cpp 1.4 和 1.5/1.6 之间静态链接的差异导致不匹配错误?
Difference in static linking between aws-sdk-cpp 1.4 and 1.5/1.6 causes mismatch error?
我遇到了 Core 和 S3 库以及 x64 Windows 静态 linking 的问题,我可以在 Visual Studio 2017 v15 的小型控制台应用程序中重现。 8.4.
使用从 NuGet 获得的 1.4 库(下面的确切版本),我的程序的 x86 和 x64 版本 link 与 AWSSDKCPP-Core 和 AWSSDKCPP-S3 的link年龄设置静态。如果我更新到 1.5 或 1.6,完全相同的项目 link 在 x86 中没问题,但在 x64 中有 link 错误:
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
我不知道为什么它认为 aws-cpp-sdk-s3.lib 的 RuntimeLibrary 值是动态的,当我将它设置为静态并且它在以前的版本中 linked(和在具有相同版本的 x86 中)。 1.5/1.6 中的 x64 静态库是否具有它们不应该具有的依赖性?有解决方法吗?
版本:
AWSSDKCPP-核心 1.4.93 / 1.6.11
AWSSDKCPP-S3 1.4.20060301.93 / 1.6.20060301.11
问题已在 1.6.24 中修复。
我遇到了 Core 和 S3 库以及 x64 Windows 静态 linking 的问题,我可以在 Visual Studio 2017 v15 的小型控制台应用程序中重现。 8.4.
使用从 NuGet 获得的 1.4 库(下面的确切版本),我的程序的 x86 和 x64 版本 link 与 AWSSDKCPP-Core 和 AWSSDKCPP-S3 的link年龄设置静态。如果我更新到 1.5 或 1.6,完全相同的项目 link 在 x86 中没问题,但在 x64 中有 link 错误:
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
我不知道为什么它认为 aws-cpp-sdk-s3.lib 的 RuntimeLibrary 值是动态的,当我将它设置为静态并且它在以前的版本中 linked(和在具有相同版本的 x86 中)。 1.5/1.6 中的 x64 静态库是否具有它们不应该具有的依赖性?有解决方法吗?
版本: AWSSDKCPP-核心 1.4.93 / 1.6.11 AWSSDKCPP-S3 1.4.20060301.93 / 1.6.20060301.11
问题已在 1.6.24 中修复。