You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用VCPKG Manifest模式安装Android库时包被忽略的问题求助

解决VCPKG Manifest模式下多平台库安装被跳过的问题

你遇到的核心问题是:VCPKG在Manifest模式下默认只会处理单个默认triplet(这里默认是x86-windows),所以即便你的manifest里明确指定了Android平台的约束,它也不会主动去处理其他未指定的平台包。而单独执行带triplet的命令能成功,是因为你直接明确了要处理的目标平台。

下面是两种可行的解决方案:

1. 命令行直接指定多个triplet

在你的install命令末尾,添加--triplet参数来明确列出需要安装的所有平台。修改后的命令如下:

vcpkg\vcpkg.exe --feature-flags="versions" install "--clean-after-build" "--x-install-root=\.\vcpkg\installed" "--binarysource=clear;interactive;nuget,VCPkg" --triplet x86-windows --triplet x86-android

这样VCPKG就会同时处理x86-windows和x86-android两个平台的openssl包,完全匹配你manifest里的平台约束。

2. 配置默认triplet文件(永久生效)

如果不想每次执行命令都手动指定triplet,可以在VCPKG目录下创建一个triplets\default文件,把需要默认处理的triplet每行写一个:

x86-windows
x86-android

之后再执行你原来的install命令,VCPKG就会自动处理这两个平台的包了。

另外要确认的是,你manifest里的platform约束(x86 & android) | (x86 & windows)是完全正确的,已经精准限定了openssl的安装范围,这部分不需要做任何修改。

内容的提问来源于stack exchange,提问作者Aleksandr Jakovlev

火山引擎 最新活动