c++ vcpkg使用方法 c++如何用vcpkg安装和管理第三方库

陌磊君_7334

陌磊君_7334

2026-04-06

217人浏览

原创

直接运行 vcpkg install fmt 即可下载、编译并安装 fmt 库到默认 triplet(如 x64-windows),vcpkg 自动处理依赖、构建工具链和导出逻辑;需预先安装 visual studio(含 c++ 工作负载)或 xcode 命令行工具,并建议先执行 vcpkg integrate install。

c++ vcpkg使用方法 c++如何用vcpkg安装和管理第三方库

怎么用 vcpkg 安装一个库(比如 fmt)

直接运行 vcpkg install fmt 就能下载、编译、安装 fmt 库到默认 triplet(通常是 x64-windows)。vcpkg 会自动处理依赖、构建工具链和导出逻辑。

常见错误现象:vcpkg install fmt 报错 “Could not locate Visual Studio installation”——说明没装 VS 或没启用 C++ 工作负载;vcpkg 依赖 cmakeVisual Studio Build Tools(Windows)或 Xcode command line tools(macOS)。

  • 安装前先运行 vcpkg integrate install,让 vcpkg 注册到全局构建环境(后续 CMake 项目可自动识别)
  • 想换平台或架构?加 triplet 参数,例如 vcpkg install fmt:x86-windowsvcpkg install fmt:arm64-osx
  • 不指定版本默认装最新稳定版;要锁定版本,得用 vcpkg install fmt@10.2.1(前提是该版本在 registry 中存在)

如何在 CMake 项目里链接 vcpkg 安装的库

vcpkg 不是系统级包管理器,它不修改 PATH 或注册 DLL,而是通过 CMake 工具链文件注入路径和 target。关键不是“找头文件”,而是让 CMake 知道从哪加载 find_package() 配置。

典型做法:在 cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake 中显式传入 toolchain 文件。

C++
C++

"空空如也"

下载
  • 必须用 -DCMAKE_TOOLCHAIN_FILE,不能只靠 find_package(fmt)——否则 CMake 找不到 config 模块
  • 如果项目已用 find_package(fmt CONFIG REQUIRED),且 toolchain 正确,CMake 会自动找到 fmt::fmt target
  • 不推荐手动设置 include_directories()link_directories():vcpkg 的 target 包含完整接口属性(如 compile definitions、private link deps),手写容易漏

vcpkg list / remove / upgrade 怎么用

vcpkg list 显示当前已安装的所有库及 triplet;vcpkg remove fmt 卸载指定库;vcpkg upgrade 列出可更新的包,加 --no-dry-run 才真正重编译安装。

容易踩的坑:vcpkg remove fmt 不会删掉被其他库依赖的头文件或静态库(vcpkg 默认启用“引用计数式卸载”),但 vcpkg remove --outdated 会清掉所有未被显式安装的旧版本缓存。

  • vcpkg list 输出里带 [bracket] 表示该库是作为依赖自动装上的,不是你 install 的主包
  • vcpkg upgrade --no-dry-run 会重新编译所有过期包,耗时长;建议先 vcpkg update 拉取 registry 变更,再决定是否升级
  • 卸载后 CMake cache 可能还残留旧路径,建议 rm -rf build/ 再重新 configure

为什么 CMakeLists.txt 里 find_package 报错“could not find fmtConfig.cmake”

根本原因:CMake 没通过 vcpkg toolchain 加载其提供的 find 模块路径。vcpkg 不把 config 文件扔进系统 CMAKE_MODULE_PATH,它靠 toolchain 注入 CMAKE_PREFIX_PATH,让 find_package() 能定位到 share/fmt/ 下的配置。

验证方法:在 CMake configure 阶段加 -DCMAKE_VERBOSE_MAKEFILE=ON,看日志里 CMAKE_PREFIX_PATH 是否包含 vcpkg 的 installed/ 目录。

  • 漏传 -DCMAKE_TOOLCHAIN_FILE 是最常见原因;即使 vcpkg integrate install 过,VS 或 CLion 也不一定自动启用它
  • 某些 IDE(如 VS2022)支持在 CMake Settings.json 里设 "cmakeToolchain" 字段,填绝对路径到 vcpkg.cmake
  • 如果用 add_subdirectory(vcpkg) 方式集成,那是老 vcpkg 版本的 hack 做法,新版不推荐,易和 triplet 冲突
vcpkg 的核心复杂点不在命令本身,而在于它和 CMake 构建系统的耦合方式——toolchain 是开关,不是可选项;triplet 是上下文,不是后缀标签。一旦漏掉其中一环,错误信息往往指向“找不到包”,实际问题却藏在构建入口参数里。

C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!

相关文章

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

c++

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

1935

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2522

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

876

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

2819

7

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3028

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4149

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3649

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

346

15

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.26

2979

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind Quick Start Guide
Valgrind Quick Start Guide

共0课时 | 0人学习

CLion CMake 快速入门教程
CLion CMake 快速入门教程

共0课时 | 0人学习