如何在cmake的清单.vcpkg依赖文件中编写aws-sdk-cpp[s3]?

问题描述 投票:0回答:1

我在我的 cmake 项目中遇到一个奇怪的错误,其中我试图要求的依赖项不起作用。在我的 vcpkg.json 文件中,我有以下内容:

{
    "name": "glmcmake",
    "version-string": "1.0.0",
    "dependencies": [
        "aws-sdk-cpp[s3]"
    ]
}

但是,当我运行 cmake 时,我在 vcpkg-manifests-install.txt 文件中收到以下错误:

$.dependencies[0] (a dependency): must be lowercase alphanumeric+hyphens, split with periods, and not reservedExtended documentation available at 'https://github.com/Microsoft/vcpkg/tree/master/docs/users/manifests.md'.

如何在 vcpkg.json 文件中正确写入 aws-sdk-cpp[s3] 依赖项,以便它可以下载正确的依赖项?我不需要整个 aws-sdk-cpp 库。基本上我只需要 s3 子文件夹。

当我在 vcpkg 上搜索 aws-sdk-cpp 时,我可以特别看到 [s3] 子文件夹,但我无法让我的 cmake 同意它在 vcpkg 搜索上的编写方式。

有什么想法吗?

谢谢

cmake dependencies vcpkg
1个回答
0
投票

解决办法是:

  1. 将整个依赖指定为一个对象;
  2. 禁用
    default-features
    ,因为你说过

    我不需要整个 aws-sdk-cpp 库

  3. 列出您确实需要的功能——在本例中,
    s3
    是一个功能。

举例说明:

{
  "name": "aws-sdk-cpp",
  "default-features": false,
  "features": [
    "s3"
  ]
}

这将准确下载该功能(及其传递依赖项),而不是其他任何内容。请参阅关于 Manifest 模式下的 features

 字段的 
vcpkg 文档,以及 此示例使用 LLVM

我不确定这个答案对近一年后的个人有多大用处,但我希望它对其他人可能有用。

© www.soinside.com 2019 - 2024. All rights reserved.