【配置环境】Windows下C/C++第三方库管理工具vcpkg安装和使用

news2024/12/24 8:38:39

一,vcpkg简介

  • vcpkg是微软公司开发的一个开源C++包管理工具,它可以很方便的帮助您在 Windows、 Linux 和 MacOS 上下载,编译和安装C++ 第三方库。它具有自动解决依赖关系的能力,并且支持多种目标架构和平台。
  • 提供了超过1500个C++库的预编译二进制包,并且还提供了一组命令行工具,以帮助用户安装,卸载,升级和管理C++库的版本。

优点:

  1. 自动下载开源库源代码,轻松编译
  2. 源码包的缓存管理和版本管理,可以升级版本
  3. 依赖关系检查(比如编译libcurl,会自动下载zlib,openssl进行编译)

二,下载vcpkg

前置条件:

  • Git - Downloads 根据平台下载最新版本(傻瓜式安装)
  • Visual Studio 2015 或更新的版本(包含英文语言包
    • 点击VS界面菜单栏的工具->获取工具和功能,查看是否下载英文语言包
  • Windows 7 或更新的版本

step 1:git克隆 vcpkg 仓库

  • 在C盘路径下右击鼠标,点击 Git Bash Here 弹出命令窗口
  • 输入:git clone https://github.com/microsoft/vcpkg.git

step 2:生成vcpkg.exe

  •  执行vcpkg目录下的 bootstrap-vcpkg.bat 构建vcpkg

step 3:配置vcpkg的环境变量

  • vcpkg 命令表
vcpkg search [pat]

搜索要构建的可用包

vcpkg install <pkg>安装软件包
vcpkg remove <pkg>卸载安装包
vcpkg update列出可以更新的包
vcpkg remove --outdated卸载所有过时的软件包
vcpkg upgrade重新构建所有过时的软件包
vcpkg hash <file> [alg]通过特定算法对文件进行哈希,默认为SHA512
vcpkg help topics显示帮助主题列表
vcpkg help <topic>显示特定主题的帮助
vcpkg list列出已安装的软件包
vcpkg integrate install使已安装的包在用户范围内可用,需要管理第一次使用的特权
vcpkg integrate remove删除用户范围的集成
vcpkg integrate project为单个VS项目生成一个引用NuGet包使用
vcpkg integrate powershell

启用PowerShell选项卡完成

vcpkg export <pkg>... [opt]...导出一个包
vcpkg edit <pkg>

打开一个端口进行编辑(使用环境器程序,默认为“code”)

vcpkg create <pkg> <url> [archivename]创建一个新端口
vcpkg x-init-registry <path>初始化目录<path>中的注册表
vcpkg format-manifest --all格式化所有vcpkg,json文件,在提交到vcpkg之前运行这个命令
vcpkg owns <pat>

搜索安装包中的文件

vcpkg depend-info <pkg>...

显示端口的依赖项列表

vcpkg env为开发或编译创建一个干净的shell环境
vcpkg version

显示版本信息

vcpkg contact

显示联系人信息发送反馈

@response_file指定响应文件以提供附加参数
有关更多帮助(包括示例),请参阅附带的README。Md和docs文件夹

step 4:vcpkg安装第三方库

  • 安装32位(默认安装) 
    •  vcpkg install [package name]
  • 安装64位
    •  vcpkg install [package name]:x64-windows

  • 安装第三方库出现的问题
  • 解决方式:cmd窗口切换到vcpkg目录,运行git pull 命令以获取最新的vcpkg代码

  • 安装第三方库成功效果(libevent库)
  • 在vcpkg/packages目录下可以查看已安装的库

step 4:下载好的库集成到项目中

  • 命令:vcpkg integrate install
  • 执行后就可以让 VS 可以自动访问到[vcpkg-path]/installed下以安装的库,我们不需要另外去为项目配置库环境。
  • 在此之后,您可以创建一个非 CMake 项目 (或打开已有的项目)。在您的项目中,所有已安装的库均可立即使用 #include 包含您需使用的库的头文件且无需额外配置。

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

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

相关文章

架构师基础篇之如何画架构图C4模型

1. 前言 本文将给大家介绍一种简洁明了软件架构可视化模型——C4模型&#xff0c;并手把手教大家如何使用代码绘制出精美的C4架构图。 阅读本文之后&#xff0c;读者画的架构图将会是这样的&#xff1a; 注&#xff1a;该图例仅作绘图示例使用&#xff0c;不确保其完整性、可…

❤ 关于以太网没有有效的ip配置问题解决方法

❤ 关于以太网没有有效的ip配置问题解决方法 错误提示 解决方法 一&#xff0c;检查IP地址是否为自动获取 1&#xff0c;首先右键任务栏右下角的网络图标点击进入"网络和共享中心",然后点击"更改适配器设置"。 2&#xff0c;在适配器界面右键"本…

异常数据检测 | Python实现孤立森林(IsolationForest)异常数据检测

文章目录 文章概述模型描述源码分享学习小结文章概述 异常数据检测 | Python实现孤立森林(IsolationForest)异常数据检测 模型描述 IsolationFores算法它是一种集成算法(类似于随机森林)主要用于挖掘异常(Anomaly)数据,或者说离群点挖掘,总之是在一大堆数据中,找出与其它数据…

***杨辉三角_yyds_LeetCode_python***

1.题目描述&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows …

第3章“程序的机器级表示”:异类的数据结构

文章目录 概述3.9.1 结构3.9.2 联合 概述 C提供了两种将不同类型的对象结合到一起来创建数据类型的机制&#xff1a;结构&#xff08;structure&#xff09;&#xff0c;用关键字 struct 来声明&#xff0c;将多个对象集合到一个单位中&#xff1b;联合&#xff08;union&…

Java网络开发(Asynchronous)—— 从 Jsp 到 Ajax 的 axios 到 vue 同步请求 到 异步请求

目录 引出如果想做bilibili边看视频边评论怎么搞&#xff1f;Ajax是啥&#xff1f;& axios的语法1. Ajax&#xff08;Asynchronous JavaScript And XML&#xff09;简介2. axios语法 及其与 java后端交互&#xff08;1&#xff09;get请求&#xff08;2&#xff09;post请求…

SpringBoot之Spring Data JPA入门学习

JPA&#xff08;Java Persistence API&#xff09;Java持久化API&#xff0c;是 Java 持久化的标准规范&#xff0c;Hibernate是持久化规范的技术实现&#xff0c;而Spring Data JPA是在 Hibernate 基础上封装的一款框架。 一、添加依赖 <dependency><groupId>or…

【git指南--命令大全】

我看好多文章命令都记录得比较发散不够全面&#xff0c;这里还是把我自己的笔记分享出来&#xff0c;方便查阅。 文章目录 1. git config作用域--list 显示当前所有配置配置cd ~/.ssh 2. 初始化 git 仓库1、把已有项目代码纳入 git 管理2、新建的项目直接用git 管理3、克隆仓库…

智能指针 smart_ptr

智能指针 为什么需要智能指针&#xff1f;内存泄漏什么是内存泄漏&#xff0c;内存泄漏的危害内存泄漏分类 智能指针的使用及原理RAII智能指针的原理std::auto_ptrstd::unique_ptrstd::shared_ptr 为什么需要智能指针&#xff1f; 下面我们先分析一下下面这段程序有没有什么内…

ps打开出现dll文件丢失怎么办,dll修复的三个方法

在Windows中&#xff0c;动态链接库&#xff08;DLL&#xff09;是一种可重用的代码和数据结构&#xff0c;它由多个应用程序共享&#xff0c;以提高内存利用率并减少冗余。DLL文件通常包含操作系统函数、图形驱动程序、网络驱动程序等&#xff0c;它们在Windows启动时被加载到…

大话Stable-Diffusion-Webui-客制化主题(四)

文章目录 目标效果开始重要说明单选框以及复选框图标样式更改gradio主题构建器上传主题方式代码上传主题方式目标 在DIY的主题中更改gradio单选框组件以及复选框组件的勾选后图标样式 效果 开始 笔者在使用gradio的主题构建器的过程中发现,gradio的复选框以及单选框组件勾选…

高通 Camera HAL3:如何在CAMX中查找Android TAG

之前的博文&#xff1a;《高通 Camera HAL3&#xff1a;添加一个VendorTag》中提到过&#xff0c;MetadataTag在CamX中有两种体现&#xff0c;可以是预定义的AndroidTag或是自定义VendorTag。 自定义VendorTag博文中已经讲解了 如何在CAMX中查找AndroidTag是经常要做的事 下…

【2】Midjourney注册

随着AI技术的问世&#xff0c;2023年可以说是AI爆炸性成长的一年&#xff0c;近期最广为人知的AI服务除了chatgpt外&#xff0c;就是从去年五月就已经问世的AI绘画工具mid journey了。 ▲几个AI工具也代表了人工智能的热门阶段 只要输入一段文字&#xff0c;AI就会根据语意计算…

Android 逆向之安全防护基本策略

对抗反编译 混淆 使用混淆主要可以减小包的大小。混淆对于安全保护来说&#xff0c;只是增加了阅读难度而已。混淆不会把关键代码混淆掉&#xff0c;比如MainActivity&#xff0c;Application等&#xff0c;可以通过分析smali和阅读jar包定位代码。 资源混淆也是换汤不换药&…

【VPX612】基于C6678 的6U VPX 实时信号处理平台

产品概述 VPX612 是一款基于6U VPX 架构的高性能实时信号处理平台&#xff0c;该平台采用4 片TI 的KeyStone 系列多核DSP TMS320C6678 作为主处理单元&#xff0c;采用1 片Xilinx 的Kintex-7 系列FPGA 作为协处理单元&#xff0c;各个处理节点之间通过高速串行总线进行互联。板…

遇到这3种接口测试问题,其实,你可以这么办~

作为整个软件项目的必经环节&#xff0c;软件测试是不可缺少的“查漏补缺”环节。而作为软件测试中的重要一环——接口测试&#xff0c;几乎串联了整个项目所有的输入和输出环节。 前几年&#xff0c;我在做后端测试时&#xff0c;接触最多的正是接口测试。基于此&#xff0c;…

chatgpt赋能python:Python怎么倒序输出一百以内的整数

Python怎么倒序输出一百以内的整数 Python是一个广泛使用的高级编程语言&#xff0c;其简单易学、易读性强、具有良好的开发效率和可维护性等特点&#xff0c;使得Python成为了软件开发、数据分析和机器学习等领域的首选语言。本篇文章将介绍Python如何倒序输出一百以内的整数…

走进 WWDC 2023 苹果开发者大会

6 月 6 日凌晨开始,苹果在加州总部举行了 WWDC 2023 开发者大会的主题演讲,向全球观众展示了 iOS 17、iPadOS 17、tvOS 17、watchOS 10 和 macOS 14 这五大新系统,以及备受期待的混合现实头显 Apple Vision Pro 和 Mac Pro 等硬件。 以下是对发布会的主要内容和亮点的总结和…

电脑误删文件有多大几率能恢复回来

电脑误删文件是一种常见情况&#xff0c;但能否成功恢复取决于多种因素。本文将探讨电脑误删文件的数据恢复几率以及影响因素&#xff0c;帮助你了解恢复的可能性并采取适当的行动。 工具/原料&#xff1a; 系统版本&#xff1a;win10系统 品牌型号&#xff1a;华硕F83E66Se-S…

开源代码分享(2)—综合能源系统零碳优化调度(附matlab代码)

参考文献&#xff1a; Optimal dispatch of zero-carbon-emission micro Energy Internet integrated with non-supplementary fired compressed air energy storage system | SGEPRI Journals & Magazine | IEEE Xplore 1.引言 全球能源危机和环境污染的双重压力促使能量…