Azure 存储 CPP 和 VCPKG

Azure Storage CPP & VCPKG

有一个小型 C++ 应用程序可以在 Visual Studio 2019 年测试一些 Azure Blob 存储功能。 已按照说明 here 使用 vcpkg 安装 azure-storage-cpp sdk 但是当我尝试 运行 应用程序时,我收到以下链接器错误:

AzureConsoleApp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) private: void __cdecl azure::storage::cloud_storage_account::initialize_default_endpoints(bool)" (__imp_?initialize_default_endpoints@cloud_storage_account@storage@azure@@AEAAX_N@Z) referenced in function "public: __cdecl azure::storage::cloud_storage_account::cloud_storage_account(class azure::storage::storage_credentials const &,bool)" (??0cloud_storage_account@storage@azure@@QEAA@AEBVstorage_credentials@12@_N@Z)

vcpkg 报告安装了以下内容:

azure-storage-cpp:x64-windows-static 7.0.0
Microsoft Azure Storage Client SDK for C++ A cli...

我需要为应用程序使用 azure-storage-cpp 的静态版本,因此 x64-windows-static。

通过阅读 vcpkg 文档,它是一种安装后忘记类型的工具,工具本身说明:

All MSBuild C++ projects can now #include any installed libraries. Linking will be handled automatically. Installing new libraries will make them instantly available.

我错过了什么?

需要在包含 azure storage sdk headers 之前定义#define _NO_WASTORAGE_API 并手动包含所有必要的 azure storage SDK 参考库(xmllite.lib、bcrypt.lib、rpcrt4.lib, Crypt32.lib, Winhttp.lib) 在链接器输入中。

找到我的答案here