我在我的 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 搜索上的编写方式。
有什么想法吗?
谢谢
解决办法是:
default-features
,因为你说过
我不需要整个 aws-sdk-cpp 库
s3
是一个功能。举例说明:
{
"name": "aws-sdk-cpp",
"default-features": false,
"features": [
"s3"
]
}
这将准确下载该功能(及其传递依赖项),而不是其他任何内容。请参阅关于 Manifest 模式下的 features
字段的vcpkg 文档,以及 此示例使用 LLVM。
我不确定这个答案对近一年后的你个人有多大用处,但我希望它对其他人可能有用。