0

0

C++怎么安装库 C++第三方库vcpkg安装配置教程【工具】

裘德小鎮的故事

裘德小鎮的故事

发布时间:2026-01-25 10:03:33

|

140人浏览过

|

来源于php中文网

原创

vcpkg在Windows上通过下载、构建、注册三步管理C++库,不修改系统目录或注册表;需用Git克隆源码并运行bootstrap-vcpkg.bat构建工具,再通过vcpkg install安装指定triplet的库,最后在CMake中设置CMAKE_TOOLCHAIN_FILE路径以集成。

c++怎么安装库 c++第三方库vcpkg安装配置教程【工具】

Windows 上用 vcpkg 安装 C++ 第三方库,本质是「下载、构建、注册三步走」,不是传统意义的“安装”——它不往系统目录写文件,也不改注册表,而是把编译好的库和头文件统一管理在本地路径下,再通过项目集成方式暴露给你的 CMake 或 Visual Studio 工程。

怎么拉取并初始化 vcpkg

你得先有 Git 和一个能执行 PowerShell / CMD 的环境(推荐用 Windows Terminal)。打开终端,cd 到你想放 vcpkg 的目录(比如 D:\dev\vcpkg),然后运行:

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

这一步会下载源码、编译 vcpkg.exe 本体。注意:bootstrap-vcpkg.bat 默认调用的是系统已安装的 Visual Studio 工具链(如 VS2022 的 VisualStudio.17.0),如果你只装了 Build Tools,可能需要手动指定工具集,例如:

  • 运行前先执行 vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 确认工具链 ID
  • 或加参数:.\bootstrap-vcpkg.bat -useSystemBinaries(跳过自带编译器,复用系统已有工具)

怎么安装某个库(比如 jsoncpp)

命令很简单:vcpkg install jsoncpp,但背后有几个关键点:

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

  • 默认安装的是 x64-windows 三元组(即 64 位 Windows 动态链接版),如果要静态链接,得用 vcpkg install jsoncpp:x64-windows-static
  • 想同时支持 Debug/Release,得加 --triplet 显式指定,例如:vcpkg install jsoncpp:x64-windows --debug(注意:--debug 不是安装 debug 版,而是启用调试输出)
  • 安装失败常见原因是网络问题(GitHub raw 资源被限),可提前设置 HTTP_PROXY 或改用国内镜像源(需修改 vcpkg/scripts/git-fetch.sh 或用 vcpkg integrate install 后手动替换 ports/ 下的 URL)

怎么让 CMake 项目识别 vcpkg 库

vcpkg 不自动注入环境变量,必须显式告诉 CMake 去哪找包。最稳妥的方式是在 CMakeLists.txt 开头加:

Lobe
Lobe

微软旗下的一个训练器学习模型的平台

下载
set(CMAKE_TOOLCHAIN_FILE "D:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake")

路径必须是绝对路径,且指向你本地 vcpkg 目录下的 scripts/buildsystems/vcpkg.cmake。如果你用的是 VS + CMake 集成,也可以在 VS 的 CMake 设置里填这个路径,而不是硬编码进 CMakeLists.txt。

另外注意:vcpkg integrate install 这个命令只是把 vcpkg 注册为 Visual Studio 的全局 NuGet 源(已废弃),对现代 CMake 项目基本没用,别被旧教程误导。

为什么 find_package 找不到库,或者链接失败

常见原因不是库没装,而是「三元组不匹配」或「CMake 构建类型不一致」:

  • 你用 vcpkg install xxx:x64-windows-static 装的,但 CMake 默认生成的是动态链接项目(CMAKE_MSVC_RUNTIME_LIBRARYMultiThreadedDLL),就会链接失败
  • 你在 CMake 中写了 find_package(jsoncpp REQUIRED),但没在 find_package 前设置 CMAKE_TOOLCHAIN_FILE,CMake 根本不会去 vcpkg 目录扫描
  • 某些库(如 boost)默认不导出所有组件,得写全名:find_package(Boost REQUIRED COMPONENTS system filesystem)

最直接的验证方式是运行 vcpkg list 看是否真装上了,再检查 vcpkg\installed\x64-windows\(或对应 triplet)下有没有 include/lib/ 目录。

真正容易被忽略的是:vcpkg 的 triplet 是构建时绑定的,不是运行时切换的。你换了一个 triplet(比如从 x64-windows 改成 x64-windows-static-md),就得重新 vcpkg install,而且 CMake cache 必须清空,否则旧路径残留会导致静默失败。

相关专题

更多
github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

488

2026.01.21

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

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

703

2023.07.05

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

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

551

2023.07.06

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

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

266

2023.07.24

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

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

550

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

513

2024.04.09

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

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

709

2023.07.26

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

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1128

2023.07.27

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

58

2026.01.23

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.5万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.2万人学习

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

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