0

0

c++如何使用vcpkg管理第三方库_c++现代化包管理器入门

冰火之心

冰火之心

发布时间:2025-12-23 14:11:02

|

288人浏览过

|

来源于php中文网

原创

vcpkg是微软推出的C++跨平台包管理器,支持Windows、Linux和macOS,可简化第三方库的安装与集成。通过git克隆并运行bootstrap-vcpkg.sh构建工具后,即可使用命令搜索(如./vcpkg search json)、安装(如./vcpkg install fmt)和指定平台(如zlib:x64-windows)管理库。默认静态链接,支持多种三元组,能与CMake无缝集成:调用CMake时传入-DCMAKE_TOOLCHAIN_FILE指向vcpkg.cmake文件,即可在CMakeLists.txt中用find_package引入库并链接。在Windows上运行./vcpkg integrate install后,Visual Studio项目可直接使用已安装库而无需额外配置。定期执行git pull更新vcpkg自身,用./vcpkg update查看过期包并用./vcpkg upgrade --no-dry-run升级,确保依赖保持最新。通过vcpkg.json锁定依赖可实现可复现构建,适用于团队协作与快速开发。

c++如何使用vcpkg管理第三方库_c++现代化包管理器入门

在现代C++开发中,手动下载、编译和管理第三方库非常繁琐。vcpkg 是微软推出的 C++ 跨平台开源包管理器,能帮你轻松安装、更新和集成第三方库到项目中。它支持 Windows、Linux 和 macOS,并与 CMake、Visual Studio 等主流工具链无缝集成。

安装 vcpkg

使用 vcpkg 的第一步是克隆仓库并构建它:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh

完成后,你会得到一个可执行的 vcpkg 命令行工具。

搜索和安装库

你可以通过关键字查找所需的库:

立即学习C++免费学习笔记(深入)”;

./vcpkg search json # 查找包含 json 的库
./vcpkg install fmt # 安装 fmt 库
./vcpkg install zlib:x64-windows # 指定目标平台

常见用法包括:

  • 不带平台后缀时,默认使用当前系统的三元组(如 x86-windows)
  • 支持多种三元组:x64-windows, x64-linux, x64-osx 等
  • 静态链接默认启用;可用 dynamic 变体切换为动态库,如 zlib:x64-windows-dynamic

集成到 CMake 项目

最常用的集成方式是在调用 CMake 时传入工具链文件:

cmake .. -DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake

之后你在 CMakeLists.txt 中就可以直接使用 find_package 引入库:

Mureka
Mureka

Mureka是昆仑万维最新推出的一款AI音乐创作工具,输入歌词即可生成完整专属歌曲。

下载
cmake_minimum_required(VERSION 3.14)
project(myapp)

find_package(fmt REQUIRED)
add_executable(main main.cpp)
target_link_libraries(main PRIVATE fmt::fmt)

这样 CMake 就能自动找到由 vcpkg 安装的库。

与 Visual Studio 集成(Windows)

运行以下命令注册到全局 Visual Studio 环境:

./vcpkg integrate install

此后所有 Visual Studio 项目都能直接使用已安装的库,无需额外配置路径或链接器。

维护和清理

定期更新 vcpkg 和已安装的库:

git pull # 更新 vcpkg 自身
./vcpkg update # 显示过期的包
./vcpkg upgrade --no-dry-run # 升级所有旧版本库

查看已安装列表:

./vcpkg list

基本上就这些。vcpkg 大幅简化了 C++ 第三方依赖的管理流程,尤其适合快速原型开发或团队协作项目。只要统一 vcpkg 版本和依赖清单(可用 vcpkg.json 锁定),就能实现可复现的构建环境。

相关专题

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

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

411

2023.08.07

json是什么
json是什么

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

533

2023.08.23

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

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

309

2023.10.13

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

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

74

2025.09.10

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

639

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

526

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

264

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

545

2024.04.09

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.2万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号