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

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 集成的步骤

相关文章:

  • Linux 文件系统与 I/O 编程核心原理及实践笔记
  • 关于队列的使用
  • 6.7本日总结
  • python打卡day47
  • 第1讲、包管理和环境管理工具Conda 全面介绍
  • 理想汽车5月交付40856辆,同比增长16.7%
  • 《开篇:课程目录》
  • 33、原子操作
  • Vue中渲染函数的使用
  • Java编程中常见的条件链与继承陷阱
  • 华为云Flexus+DeepSeek征文|华为云一键部署知识库搜索增强版Dify平台,构建智能聊天助手实战指南
  • 【PhysUnits】15.17 比例因子模块 (ratio.rs)
  • 【在线五子棋对战】二、websocket 服务器搭建
  • 僵尸进程是什么?怎么回收?孤儿进程?
  • Spring Cloud Hystrix熔断机制:构建高可用微服务的利器
  • 今天对C语言中static和extern关键字的作用认识又深刻了
  • 174页PPT家居制造业集团战略规划和运营管控规划方案
  • SQLMesh实战:用虚拟数据环境和自动化测试重新定义数据工程
  • 高频 PCB 技术发展趋势与应用解析
  • Python 基础核心语法:输入输出、变量、注释与字符串操作
  • 网站模板怎么改/长沙百度快速优化
  • app产品网站建设/二级域名网站查询入口
  • 网络建站公司如何做市场/企业营销策略有哪些
  • 科普类网站怎么做/如何用模板做网站
  • 作作网站/优秀网站设计网站
  • 可以做黄金期权的网站/seo黑帽优化