C/C++学习笔记 vcpkg使用备忘及简要说明

一、简述

        vcpkg 是一个免费的 C/C++ 包管理器,用于获取和管理库。从 1500 多个开源库中进行选择,一步下载并构建,或者添加您自己的私有库以简化构建过程。由 Microsoft C++ 团队和开源贡献者维护。

        官方教程

vcpkg 文档 | Microsoft Learnvcpkg 是跨平台的 C/C++ 包管理器。 快速获取对数千个高质量开放源代码库的访问权限,从而为应用程序提供支持,并在内部共享专用组件的集合。icon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/vcpkg/

二、安装

        安装 vcpkg 的过程分为两步:

        首先,克隆存储库,然后运行引导脚本以生成 vcpkg 二进制文件。该存储库可以克隆到任何地方,并且将包含引导后的 vcpkg 二进制文件以及从命令行安装的任何库。建议将 vcpkg 克隆为 CMake 项目的子模块,但对于 MSBuild 项目则将其全局安装。如果全局安装,我们建议使用简短的安装路径,例如: C:\src\vcpkg或 C:\dev\vcpkg,否则您可能会遇到某些端口构建系统的路径问题。

1、克隆 vcpkg 存储库

git clone https://github.com/Microsoft/vcpkg.git

        在执行此操作之前,请确保您位于想要安装该工具的目录中。

2、运行引导脚本来构建 vcpkg

.\vcpkg\bootstrap-vcpkg.bat

3、安装软件包

vcpkg install [要安装的软件包]

        查看这个包管理器里面都有哪些包,最好上梯子

Browse public vcpkg packagesExplore vcpkg libraries to installicon-default.png?t=N7T8https://vcpkg.io/en/packages

三、集成使用

1、与 MSBuild / VS 结合使用

vcpkg integrate install

        之后,您可以创建一个新项目或在 IDE 中打开现有项目。所有已安装的库都应该可以被 IntelliSense 发现,并且可以在代码中使用,无需额外配置。

2、与 CMake 结合使用

        为了在 IDE 之外将 vcpkg 与 CMake 一起使用,您可以使用工具链文件:

        命令行下,使用DCMAKE_TOOLCHAIN_FILE指定toolchain路径

cmake -B [build directory] -S . -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake

        然后

cmake --build [build directory]

         GUI界面下,选择指定toolchain路径。

        使用 CMake,您需要使用 find_package() 来引用 Cmakelists.txt 文件中的库。

三、安装后

        这是安装好的目录,其中有几个目录值得关注。

        1、首先是downloads文件夹

        如果安装包的时候下载不下来,可以在界面上复制下载路径,下载完成,修改界面上重新定位的文件名,之后拷贝到downloads文件夹,重新执行安装命令即可。

        2、之后是installed文件夹

        安装完的所有的库的头文件、lib、dll等都在这个文件夹,如果创建项目的时候需要引用可以到这里来找。

        通常可以包含C:\vcpkg-master\installed\x64-windows\include,就可以包含所有安装好的包的头文件(不过有些库安装完带了版本号,可能别的库调用它的时候不会指定版本号,这样的库的头文件路径就需要在项目种单独添加一下)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法(十)深度优先搜索与广度优先搜索

广度优先搜索 广度优先搜索:从一个顶点出发(由开始时顶点创造顺序优先决定),访问所有没有被访问过的临节点。然后在从被访问过的节点出发,重复之前的操作 如下为一个图 从1出发,先后访问2 3,之后…

Go zero copy,复制文件

这里使用零拷贝技术复制文件,从内核态操作源文件和目标文件。避免了在用户态开辟缓冲区,然后从内核态复制文件到用户态的问题。 由内核态完成文件复制操作。 调用的是syscall.Sendfile系统调用函数。 //go:build linuxpackage zero_copyimport ("f…

横版长图一键切割,短图制作高效又便捷!

在数字时代,图片处理已经成为了我们日常工作和生活中不可或缺的一部分。为了满足大家对于高效、便捷的图片处理需求,我们推出了一款全新的图片处理工具——横版长图一键切割! 首先,我们进入首助编辑高手主页面,会看到…

优化改进YOLOv8算法之AKConv(可改变核卷积),即插即用的卷积,效果秒杀DSConv

目录 1 AKConv原理 1.1 Define the initial sampling position 1.2 Alterable convolutional operation 1.3 Extended AKConv 2 YOLOv8中加入AKConv模块 2.1 AKConv.py文件配置 2.2 task.py配置 2.3 创建添加优化点模块的yolov8-AKConv.yaml 2.4 训练 1 AKConv原理 …

Docker部署 SRS rtmp/flv流媒体服务器

一、介绍 SRS(Simple Realtime Server)是一款开源的流媒体服务器,具有高性能、高可靠性、高灵活性的特点,能够支持直播、点播、转码等多种流媒体应用场景。SRS 不仅提供了流媒体服务器,还提供了适用于多种平台的客户端…

minio的使用

默认账号:minioadmin 默认密码:minioadmin 启动minio, 在minio的目录下启动命令行 D:\Minio>minio server /Data Status: 1 Online, 0 Offline. S3-API: http://10.247.157.72:9000 http://192.168.184.1:9000 http://192.168…

Balking模式-实例

Balking模式 所谓Balk就是停止并返回的意思。 如果守护条件不成立,则立即中断处理。 因为Guarded Suspension模式是一直等待至可以运行。 当写入的内容与上次写入的内容完全相同时, 再向文件写入就显得多余了, 所以就不再执行写入操作。 也就…

洛谷 P8682 [蓝桥杯 2019 省 B] 等差数列

数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中 N N N 个整数。 现在给出这 N N N 个整数 A 1 , A 2 , ⋯ , A N A_1,A_2,\cdots,A_N A1​,A2​,⋯,AN​。(注意 A 1 ~ A N A_1 ~ A…

深度解析Dubbo的基本应用与高级应用:负载均衡、服务超时、集群容错、服务降级、本地存根、本地伪装、参数回调等关键技术详解

负载均衡 官网地址: http://dubbo.apache.org/zh/docs/v2.7/user/examples/loadbalance/ 如果在消费端和服务端都配置了负载均衡策略, 以消费端为准。 这其中比较难理解的就是最少活跃调用数是如何进行统计的? 讲道理, 最少活跃数…

欧拉图及其应用

什么是欧拉图 提到欧拉图就要谈到哥尼斯堡七桥问题,最初有这样的一个问题的:18世纪中叶,东普鲁士哥尼斯堡城有一条贯穿全城的普雷格尔河,河中有两个岛,通过七座桥彼此相连,如下图所示 问题是这样的&…

【Python学习】Python学习10-列表

目录 【Python学习】Python学习10-列表 前言创建语法访问列表中的值更新和删除列表元素操作列表列表截取Python列表函数&方法参考 文章所属专区 Python学习 前言 本章节主要说明Python的列表List。 创建语法 创建一个列表 通过方括号和逗号分割创建,列表数据…

Linux系统下gitee使用git提交代码

Linux系统下gitee使用git提交代码 一、安装配置git1.1 在 Linux 中安装 git,并生成授信证书1.2 将SSH key 添加到 ssh-agent1.2 将SSH key 添加到你的gitee账户 二、gitee 的使用2.1 下载项目到本地 三、上传gitee三步走3.1 三板斧第一招:git add3.2 三板…

FreeRTOS学习总结(二)FreeRTOS任务创建和删除API函数

实现动态创建任务流程 任务控制块结构体成员介绍 typedef struct tskTaskControlBlock {volatile StackType_t * pxTopOfStack; /* 任务栈栈顶,必须为TCB第一个成员 */ListItem_t xStateListItem; /* 任务状态列表项 */ Li…

解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题

目录 问题: 尝试 问题得到解决 我的解释 问题: 最近游戏要上线,发现一个现象,部分机型在启动的时候闪退或者黑屏,概率是5%左右,通过Bugly只有个别机型才有这个现象,其实真实情况比这严重的多…

【精选】小白 windows操作系统 使用教程(超详细)

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步…

leetcode2807.在链表中插入最大公约数

文章目录 题目解题方法复杂度Code Problem: 2807. 在链表中插入最大公约数 题目 给你一个链表的头 head ,每个结点包含一个整数值。 在相邻结点之间,请你插入一个新的结点,结点值为这两个相邻结点值的 最大公约数 。 请你返回插入之后的链表。…

SQLAlchemy 中的会话(Session)缓存详解

SQLAlchemy 的会话缓存(Session Cache)是 ORM 框架的核心特性之一,对于理解和高效使用 SQLAlchemy 至关重要。这个缓存机制主要作用在会话(Session)层面,提供了对数据库交互的中间缓存层。以下是对 SQLAlch…

apache2的虚拟主机的配置

APACHE2的虚拟主机配置 本章中心概括: 虚拟web主机的初步认识,在redhat系列系统中如何配置,在Debian系列系统中如何配置。 什么是apache2虚拟主机: 简单点讲,就是在同一个物理机中配置多个虚拟主机,从而达…

池化层解析:简单易懂理解 PyTorch 中的核心组件

目录 torch.nn详解 nn.MaxPool1d nn.MaxPool2d nn.MaxPool3d nn.MaxUnpool1d nn.MaxUnpool2d nn.MaxUnpool3d nn.AvgPool1d nn.AvgPool2d nn.AvgPool3d nn.FractionalMaxPool2d nn.FractionalMaxPool3d nn.LPPool1d nn.LPPool2d nn.AdaptiveMaxPool1d nn.Adapt…

git打tag以及拉取tag

场景:某次git代码发布后定版记录,将发版所在的commit时候代码打上tag记录,方便后期切换到对应tag代码位置。 查看所有tag名 git tag// 1.1.0 // 1.0.0查看tag和描述 git tag -l -n//1.0.0 云监管一期项目完结 //1.1.0 …