当前位置: 首页 > ai >正文

2.4 vcpkg 使用

一、Vcpkg 入门

1.1 vcpkg 安装

(1) 设置powershell代理

官方推荐使用powershell终端,为了方便代码下载,这里设置代理。

临时设置代理(仅当前对话有效)

# 设置HTTP和HTTPS代理(注意要带"$",不然会被认为是字符串)
$env:HTTP_PROXY = "http://127.0.0.1:11819"
$env:HTTPS_PROXY = "http://127.0.0.1:11819"# 清除代理设置
$env:HTTP_PROXY = $null
$env:HTTPS_PROXY = $null

(2)下载vcpkg源码并编译

# 下载源码
cd d:\
git clone https://github.com/microsoft/vcpkg# 编译
cd vcpkg
.\bootstrap-vcpkg.bat

编译好以后 会在同级目录下生成vcpkg.exe文件

(3)配置环境变量(可选)

为了方便在其他地方使用vcpkg,将vcpkg路径添加到环境变量中。
在这里插入图片描述

1.2 vcpkg 常用命令

  • 查找库:\vcpkg.exe search jsoncpp 【查找jsoncpp库】
  • 安装库:.\vcpkg.exe install jsoncp 【会下载工具和源码,然后编译安装】
  • 列出已安装的库: .\vcpkg.exe list
  • 导出库: vcpkg export jsoncpp --7zip 【支持多种格式:–7zip –raw –nuget –ifw –zip】
  • 卸载库: .\vcpkg.exe remove jsoncpp
  • 移除过时包: .\vcpkg.exe remove --outdated
  • 更新库: vcpkg update xxx

二、Vcpkg 进阶使用

2.1 安装指定类型的库

我需要安装64位的动态库 应该怎样设置呢?vcpkg提供多种cmake配置文件(也叫三元组文件) 用来生成对应类型的库。

(1)查看有那些cmake配置:

# 这里用findstr进行了过滤,我只需要64位Windows的库。
PS D:\Program\Vcpkg\vcpkg> .\vcpkg.exe help triplet  | findstr x64-winx64-windows-release    # releas版本,默认是同时编译release和debug版本x64-windows-static-md  # 静态库,且运行时库时是动态库x64-windows-static     # 静态库,且运行时库是静态库x64-windows            # 默认编译这个版本,动态库x64-windows-static-md-release # release版本的静态库(运行时库是动态库)x64-windows-static-release    # release版本的静态库

(2)cmake配置文件的命名格式:<架构>-<平台>-<链接方式>

  • 架构(VCPKG_TARGET_ARCHITECTURE ):x64、x86、arm、arm64
  • 平台(VCPKG_CMAKE_SYSTEM_NAME):Windows、Linux、Android、Darwin等
  • 链接方式
    • 编译类型(VCPKG_BUILD_TYPE):release、debug
    • 库类型(VCPKG_LIBRARY_LINKAGE): dynamic、static
    • 运行时库类型(VCPKG_CRT_LINKAGE):dynamic、static

(3)安装指定类型的库:

# 通过:<库名:配置类型>.\vcpkg.exe install jsoncpp:x64-windows-static# 通过--triplet选项指定配置类型.\vcpkg.exe install jsoncpp --triplet x64-windows-release

2.2 安装指定版本的库

(1)查看库有那些版本

查看库有那些版本:vcpkg.io

在这里插入图片描述

在这里插入图片描述

(2)创建目录和vcpkg.json文件

创建临时目录tmp:
在这里插入图片描述

在tmp目录下创建vcpkg.json文件:

{"builtin-baseline": "984f9232b2fe0eb94f5e9f161d6c632c581fff0c","dependencies": ["jsoncpp"],"overrides": [{"name": "jsoncpp","version": "1.9.5","port-version": 5}]
}

说明:

  • builtin-baseline:是vcpkg的commit-id,vcpkg如果是解压安装的 是无法获取。
    • 获取commit-idgit -C D:\Program\Vcpkg\vcpkg rev-parse HEAD
  • dependencies:只需要填写库名称即可。
  • version:库主版本号
  • port-version: vcpkg端口版本号

(3)编译安装库

vcpkg.exe install --triplet x64-windows  --x-install-root=./3rdparty

指定版本的库已安装成功:
在这里插入图片描述

2.3 指定编译器

当系统有多个版本的编译器时使用,比如安装VS2017和VS2019,由于vcpkg默认使用最新版本的编译器,如果需要使用VS2017编译,则需要设置。

(1) 默认行为

  • Windows 系统vcpkg 默认使用最新安装的 Visual Studio 的 MSVC 编译器
  • Linux/macOS:默认使用系统默认的 GCC 或 Clang

(2)通过设置环境变量指定编译器

MSVC编译器:

$env:VCPKG_VISUAL_STUDIO_PATH = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"

MinGW编译器:

$env:VCPKG_PLATFORM_TOOLSET = "MinGW"  # 或者具体版本如 "MinGW-8.1.0"
$env:CC = "gcc.exe"
$env:CXX = "g++.exe"

(3)编译安装

vcpkg.exe install --triplet x64-windows  --x-install-root=./3rdparty

参考文章:

  • 利用Vcpkg轻松集成开源第三方库
  • Vcpkg C/C++库管理工具安装和使用教程(链接VS2019)
  • windows11环境包管理工具vcpkg配置和教程
  • vcpkg 与 CMake 集成的步骤
http://www.xdnf.cn/news/12586.html

相关文章:

  • Vue中渲染函数的使用
  • Promise深入理解
  • 【靶场】yzmcms5.3.0 SSRF漏洞
  • 分享一道力扣
  • 又是一年高考季
  • mariadb5.5.56在centos7.6环境安装
  • python怎么读shape文件?
  • GPU集群故障分析:大型AI训练中的硬件问题与影响
  • 408第一季 - 数据结构 - 字符串和KMP算法
  • 快速了解:单北斗终端的定义、作用与好处!
  • Qt(part 2)1、Qwindow(菜单栏,工具栏,状态栏),铆接部件,核心部件 ,2、添加资源文件 3、对话框
  • 随访系统安装的记录
  • 【Hot 100】84. 柱状图中最大的矩形
  • 数据库管理与高可用-MySQL高可用
  • 编程基础:执行流
  • Profinet转CanOpen网关模块:铝业车间通信“破壁者”,引领工业新变革
  • MS2691 全频段、多模导航、射频低噪声放大器芯片,应用于导航仪 双频测量仪
  • win32相关(IAT HOOK)
  • 【RTSP从零实践】1、根据RTSP协议实现一个RTSP服务
  • STM32什么是寄存器
  • 24、std::hash
  • conda环境配置(一) —— 常用虚拟环境操作命令
  • 新时代AI发展,更好的做自己
  • 第1讲、包管理和环境管理工具Conda 全面介绍
  • VB.net复制Ntag213卡写入UID
  • [C++] list双向链表使用方法
  • 深入理解 Java 多线程:原理剖析与实战指南
  • 乐观锁与悲观锁的实现和应用
  • 统一点云数据格式:高效转换与属性保留
  • 微服务架构的性能优化:链路追踪与可观测性建设