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.hqwc.cn/news/334492.html

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

相关文章

玩转硬件之玩改朗逸中控设备

这是一个有关一件被拆卸的朗逸中控设备的故事。这个设备已经闲置多年,但是它的命运发生了转变。它被改装成了一台收音机和MP3播放器。 这个设备曾经是一辆朗逸的中控屏幕,就是因为它没有倒车影像,它就被拆了下来,被扔在了一个角落…

Realm Management Extension领域管理扩展之安全状态

RME基于Arm TrustZone技术。TrustZone技术在Armv6中引入,提供以下两个安全状态: 安全状态(Secure state)非安全状态(Non-secure state)以下图表显示了在AArch64中的这两个安全状态以及通常在每个安全状态中找到的软件组件: 该架构将在安全状态运行的软件与在非安全状态运…

03.SpringCloud服务间远程调用

一、Feign远程调用 feign是基于nacos,所以需要先引入对应的依赖。 先来看我们以前利用RestTemplate发起远程调用的代码: 存在下面的问题: 代码可读性差,编程体验不统一 参数复杂URL难以维护 Feign是一个声明式的http客户端…

探索Java中的Map:领略键值对的无限魅力

目录 1、前言 2、介绍Map 2.1 什么是Map 2.2 Map的特点 3、常用的Map实现类 3.1 HashMap 3.2 TreeMap 3.3 LinkedHashMap 3.4 Hashtable 3.5 ConcurrentHashMap 4、操作Map的常用方法 5、Map的应用场景 5.1 缓存 5.2 数据存储 5.3 计数器 6、常见问题解答 6.1…

【漏洞复现】锐捷EG易网关cli.php后台命令执行漏洞

Nx01 产品简介 锐捷EG易网关是一款综合网关,由锐捷网络完全自主研发。它集成了先进的软硬件体系架构,配备了DPI深入分析引擎、行为分析/管理引擎,可以在保证网络出口高效转发的条件下,提供专业的流控功能、出色的URL过滤以及本地化…

极海APM32F003通过IEC 60730/60335功能安全认证,为产品安全保驾护航

近日,极海APM32F003系列工业级超值型MCU,已顺利通过IEC 60730/60335功能安全认证,并可提供符合CLASS B标准的功能安全设计套件,有助于客户减少认证时间与成本,快速推出稳定可靠的终端产品。 *VDE是德国的一个权威性电气…

selenium处理iframe网页办法

学习selenium中,发现有一些网页是嵌套的,即一个html嵌套另一个html,这被称为iframe,selenium只能查找主网页的元素,无法查看嵌套的,进入嵌套的一行代码,首先定位到iframe,然后browser.switch_to.frame(ifra…

如何在企业中实施自适应人工智能?

人工智能不再是企业的选择。很快,它也将不再是一个区分因素。商业中的适应性人工智能正在改变格局。根据最近的统计数据,95%的企业以上都在追求人工智能。 因此,为了确保你拥有竞争优势,你必须期待先进的人工智能选项。适应性就是…

开发分销商城小程序app,轻松助你业绩倍增

开发分销商城小程序app,轻松助你业绩倍增! 1. 一键分享,业务拓展:分销商城小程序可生成独特的分销链接与二维码,让你的分销员分享给亲朋好友、社交媒体粉丝。迅速扩大销售网络,提升产品知名度。 2. 佣金管…

Python异步编程|PySimpleGUI界面读取PDF转换Excel

目录 实例要求 原始pdf文件格式 输出xls文件格式 运行界面 完整代码 代码分析 遍历表格 布局界面 控件简介 写入表格 表格排序 事件循环 异步编程 实例要求 使用PySimpleGUI做一个把单位考勤系统导出的pdf文件合并输出Excel的应用,故事出自&#xff1…

C++其他语法总结

目录 《C基础语法总结》《C面向对象语法总结(一)》《C面向对象语法总结(二)》《C面向对象语法总结(三)》 一、运算符重载 运算符重载可以为运算符增加一些新的功能全局函数、成员函数都支持运算符重载常用的运算符重载示例 class Point {…

已安装MySQL5.7的基础上安装MySQL8教程

类似文章很多,但部分问题解决方案并不是很完整,且对细节描述不够清楚,特意总结一篇 在本机已经安装MySQL5.7的情况下新安装MySQL8.x的方案如下(请按照步骤详细操作): 1.进入官网下载 https://dev.mysql.c…