2024最新版Vcpkg安装第三方库报错error: building XXXX failed with: BUILD_FAILED

很多朋友用Vcpkg安装第三方库的时候基本都会遇到报错的情况,而且大部分都会出现下面这个页面里面的红色报错信息,但是实际上真正错误应该是上面的Cmake Error提示,下面的红色警告只是Vcpkg官方提供给我们的一个最基础的解决方式,而这个解决方式一般都没什么用。 

 我在用Vpckg安装C++的网络编程库Crow的时候就报错了,我经历过非常多次的这类问题,但基本都解决了,我自己认为解决这类Vcpkg安装问题的基本思路就是三个点。

首先最重要的,也是国内最痛的点,网络问题,因为Vcpkg安装库所需要的包都来自Github,因此下载速度有时候非常不稳定,这就导致Vcpkg安装包的时候总是出错,这点大家可以通过代理服务器或者挂梯子的方式解决,相信能用上Vcpkg的人,至少找梯子或者架梯子的能力还是有的吧,只要挂上了代理服务器,Vcpkg会自动连接上代理服务器,不需要再配置端口号或者代理服务器的监听地址。

第二点就是如Vcpkg官方提供的提示一样,首先进入到vpckg的安装目录下(就是有vcpkg.exe的目录),然后在命令行输入git pull再输入vcpkg update,这点是为了和Vcpkg官方提供的包下载路径进行同步,如果包下载路径更新了而本地的包下载路径没有更新就会出错,但说实话,这点一般没什么用。

第三点就是不要用控制台去执行vpckg指令!一定要用powershell并且要以管理员的身份运行powershell,然后安装第三方库,这也是大部分人安装包失败的原因。

我上面那个报红色错误的窗口就是控制台窗口,结果安装失败了,然后我以管理员的身份运行PowerShell来安装就成功了,这是因为Vcpkg在安装第三方库的时候需要一些电脑文件的访问权限,如果没有访问权限安装也会失败!

比如我们再用vcpkg安装一个C++第三方库Rapidjson,Rapidjson是一个轻量级的C++的json文件解析库,以效率高著称,另外由于博主设置了Vcpkg的系统环境变量,所以可以在任意文件夹下面使用vcpkg指令,不过安装好的库全部都在Vcpkg的默认路径下。

使用控制台安装,不出意外就直接报错了。

以管理员的身份用PowerShell安装直接成功。

来到Vcpkg的默认安装目录下,可以发现crow和rapidjson都安装好了,使用VS2022本身的项目构建工具导入这些头文件和lib目录下的文件就可以直接使用这些库了,这是最方便的一种方式,如果用VS2022导过包的人,基本看到include目录和lib目录就知道要怎么导入了。

我们就用VS2022导入试试吧,首先就是创建一个C++控制台项目就好了,然后导入头文件和链接库文件。

在CPP文件中输入下面的代码。

#include <iostream>
#include <crow.h>

int main() {
    crow::SimpleApp app;

    CROW_ROUTE(app, "/")
        ([]() {
        return "Hello, World!";
            });

    app.port(8080).multithreaded().run();
    return 0;
}

直接运行代码就可以了,相当方便对吧。

打开浏览器输入localhost:8080就可以看到我们的Hello,world!了,一个简单的C++Web程序就搭建好了。

还有一种比较复杂但非常通用的导入方式,那就是使用Cmake导入,这里就涉及到了Cmake工具的配置问题了,这个点微软官方教程说的非常明白大家可以自行去阅读。vcpkg 文档 | Microsoft Learn

切忌不要直接用控制台!!!

总的来说,作为一个国际级的大公司开发的包管理器,Vcpkg还是相当好用的,至少相比于导入方式乱七八糟的Cmake而言对新手要友好的多,另外还有一个C++的包管理器叫做Conan,个人感觉是比不上Vcpkg的,Conan安装包的时候非常容易出错,而且是各种方面的错误,我自己用起来觉得不太方便,而且Conan是一个小公司开发的,很难比得上Vcpkg这种后台特别硬的管理器,Conan支持导入的包也远少于Vcpkg,不过之后大家基本都要学会用Cmake去导入包了,这点是和其他C++学习者拉开差距的一个分水岭。

尽管Vcpgk可以导入大部分的C++第三方库,但是有些库不建议用Vcpkg来导入,比如QtBoostWt这类大型库,这些库用Vcpkg安装非常容易出错,这不只是针对Vcpkg而言,基本对于所有的C++包管理器而言都是如此,因为这些库过于庞大了,但是这些库都有自己官方提供的安装方式,而不会依赖于包管理器。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咩咩大主教

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值