如何设置 vcpkg 依赖特定编译器

最近项目要部署到 gitlab-ci 上,所以远程机器上也要安装好编译环境

在相关的环境安装完后,发现编译项目时提示找不到三方库的符号文件

看到这个错误的第一反应就是依赖库的版本不对,因为远程机器上不仅安装了 vs2019,还安装了 vs2022

这个可能会导致 vcpkg 编译时选择了 vs2022 的 MSVC,但是我们在 cmake 时选择的是 vs2019

这样就导致了 jsoncpp 里的某个符号文件无法找到,因为高版本的库可能会把一些旧的函数删除了

借助这篇文章,

我们需要设置 vcpkg 强行选择特定的编译器

v142 是 vs2019,v143 是 vs2022
设置完之后,删除 vcpkg 的缓存文件夹(archives),卸载 jsoncpp 库并重新安装即可

补充:

如果我们的机器上同时存在 vs2019 和 vs2022,那在 cmake 时没有指定 vs2019 编译器,在编译时可能会提示找不到 v143 工具链,因为 vcpkg 会默认用最新的编译器

而 v143 是 vs2022 的工具链,所以我们只需要在 cmake 时指定 vs2019 即可

cmake .. -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Releas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值