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++学习者拉开差距的一个分水岭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/723372.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

『啥叫不可测试代码』

最近写单元测试&#xff0c;知道 golang的单测覆盖率提高会比较难&#xff0c;没想到这么难。当提高到一定程度&#xff0c;有的 case就无法成型了&#xff0c;也就无从增加覆盖率。为何呢&#xff1f;思考许久&#xff0c;究其原因&#xff0c;还是被测代码属于“不可测代码”…

NSSCTF-Web题目10

目录 [强网杯 2019]随便注 1、题目 2、知识点 3、思路 [GXYCTF 2019]BabyUpload 1、题目 2、知识点 3、思路 [强网杯 2019]随便注 1、题目 2、知识点 数据库注入&#xff0c;堆叠注入&#xff0c;更改表名 3、思路 正常提交查询&#xff0c;看看数据回显 加入单引号…

数学建模基础:非线性模型

目录 前言 一、非线性方程组 二、非线性规划 三、微分方程模型 四、非线性模型的应用 五、实例示范&#xff1a;传染病传播模型 实例总结 五、总结 前言 非线性模型用于描述变量之间的非线性关系&#xff0c;相比线性模型&#xff0c;其数学形式更为复杂&#xff0c;但…

Window常用的脚本有哪些?快来看看有哪些是你正在用的!(欢迎评论补充~)

前言 在日常开发中&#xff0c;如果能熟练掌握以下这些使用频率很高的脚本&#xff0c;那工作起来真的是手拿把攥&#xff0c;事半功倍&#xff0c;接下来给大家介绍一些我们日常使用率很高的一些脚本&#xff01; 常用脚本(Batchfile & VBScript) 1.一键启动.bat 一次…

Android device/xxx/system/common/overlay编译产物

MTK 如下代码编译的产物在 framework-res.apk 编译配置文件在device/mediatek/system/common/目录下的Android.bp device/mediatek/system/common/overlay/telephony/frameworks/base/core/res/res/values-mcc655-mnc01/config.xml 在Android U上面还在overlay目录中进行了产…

pytets测试框架中如果需要运行多个测试套件时pytest.ini文件设置

pytets测试框架中如果需要运行多个测试套件时pytest.ini文件设置方法 testpaths testcases/fenmi testcases/weixin testcases/Zgen

【数据结构与算法】对称矩阵,三角矩阵 详解

给出对称矩阵、三角矩阵的节省内存的存贮结构并写出相应的输入、输出算法。 对称矩阵和三角矩阵可以通过特殊的存储结构来节省内存。这种存储结构只存储矩阵的一部分元素&#xff0c;而不是全部元素。 对称矩阵&#xff1a;对于一个n阶对称矩阵&#xff0c;我们只需要存储主对…

【单片机毕业设计选题24014】-基于Arduino的瓜果采摘机构设计

系统功能: 使用MeArm机械臂, 上电后四路舵机处于初始90度位置&#xff0c;通过APP"蓝牙调试器"连接手机后可通过手机端控制四路舵机执行单独或连续的动作&#xff0c;并读取颜色传感器的RGB值。 主要功能模块原理图: 资料获取地址 系统主要功能模块代码 //存储电机…

备忘录文字颜色怎么改 备忘录改变字体颜色方法

在日常的工作和生活中&#xff0c;备忘录已经成为我不可或缺的好帮手。但是&#xff0c;面对满满当当的备忘录&#xff0c;有时候不同的任务和信息都混在一起&#xff0c;让人眼花缭乱。我常常想&#xff0c;如果能改变备忘录中的文字颜色&#xff0c;用以区分不同类别的事项&a…

如何打开pak文件-翻译pak语言包

最近碰到一些程序的语言包是pak格式&#xff0c;用Notepad打开全是乱码&#xff0c;百度搜索了一下&#xff0c;pak是一种少见的压缩文件格式&#xff0c;是pak Quake系列游戏所采用的一种特殊压缩包格式&#xff0c;由Quake游戏公司开发&#xff0c;用高版本的winrar可以打开&…

哪个城市的Delphier最多?Delphier平均年龄多大了?

先来看看哪个城市的Delphier最多&#xff1a; 北上广深不是白叫的&#xff0c; 大家想换工作&#xff0c;就去这些大城市&#xff0c;机会多。 有人会觉得奇怪&#xff0c;怎么才这么几个人&#xff1f; 因为以上数据统计基数为2000人&#xff0c; 根据微信公众号和QQ群得出…

好用耐用充电宝有哪些牌子?公认性能超全充电宝品牌

在共享充电宝遍布大街小巷的今天&#xff0c;许多人可能会觉得拥有一款自己的充电宝已经不再必要。然而&#xff0c;共享充电宝的高昂费用和不够便携的特点&#xff0c;让越来越多的消费者开始重新考虑购买一款属于自己的充电宝。那么&#xff0c;在众多充电宝品牌中&#xff0…

反激开关电源整流桥选型及计算

整流桥的作用就是把输入交流电压整形成直流电压&#xff0c;把正弦波整成馒头波&#xff0c;由于整流管的单向导电 性&#xff0c;在输入电压瞬时值小于滤波电容上电压时整流桥&#xff0c;在这个时候是不导通的&#xff0c;使整流桥的电流变 成2-3ms左右的窄脉冲。为获得所需…

python-jupyter notebook安装教程

&#x1f308;所属专栏&#xff1a;【python】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的…

深度学习(理论知识)

一、监督学习、自监督和半监督 1、监督学习&#xff08;Supervised Learning&#xff09; 概念 监督学习是一种机器学习方法&#xff0c;通过使用带标签的数据进行训练&#xff0c;模型学习从输入到输出的映射关系。数据集中的每个样本都包含输入特征&#xff08;features&am…

开辟一个存储空间以存放一个结构体数据

在软件开发中&#xff0c;常常需要动态地分配和撤销内存空间&#xff0c;例如对动态链表中结点的插入与删除。在C语言中是利用库函数malloc和free来分配和撤销内存空间的。C提供了较简便而功能较强的运算符new和delete 来取代malloc和free函数。注意&#xff1a;new和delete是运…

使用查表法计算NTC热敏电阻的温度

代码&#xff1a; hardware.c /*《AVR专题精选》随书例程2.编程技巧项目&#xff1a;查表法使用NTC测量温度文件&#xff1a;hardware.c说明&#xff1a;硬件驱动文件作者&#xff1a;邵子扬时间&#xff1a;2012年12月12日*/ #include "hardware.h"// IO初始化 vo…

分享一下,如何搭建个人网站的步骤

在这段充满探索与创造的奇妙旅途中&#xff0c;我就像一位耐心的建筑师&#xff0c;在数字世界的荒原上精心雕琢&#xff0c;两周的时光缓缓流淌。每天&#xff0c;我与代码共舞&#xff0c;手执HTML、CSS与JavaScript这三大构建魔杖&#xff0c;一砖一瓦地筑起了梦想中的网络城…

Rcmp: Reconstructing RDMA-Based Memory Disaggregation via CXL——论文阅读

TACO 2024 Paper CXL论文阅读笔记整理 背景 RDMA&#xff1a;RDMA是一系列协议&#xff0c;允许一台机器通过网络直接访问远程机器中的数据。RDMA协议通常固定在RDMA NIC&#xff08;RNIC&#xff09;上&#xff0c;具有高带宽&#xff08;>10 GB/s&#xff09;和微秒级延…

星戈瑞FITC-Cytochrome C:荧光标记细胞色素C的研究与应用

细胞色素C&#xff08;Cytochrome C&#xff09;是一种位于线粒体内膜上的蛋白质。为了深入地研究细胞色素C在细胞生物学和病理学中的功能&#xff0c;科学家们常常采用荧光标记技术对其进行追踪和观察。其中&#xff0c;异硫氰酸荧光素&#xff08;FITC&#xff09;作为一种常…