一、vcpkg 简介

  1. vcpkg 是一个由微软开发的、免费且开源的 C/C++ 库管理器。
  2. 通俗地说,它就像是 C++ 世界的 npm (Node.js) 或 Maven (Java)。
  3. 它可以帮助开发者轻松地获取、构建和安装大量的 C++开源库,解决了在不同平台上编译和管理第三方库的复杂性问题,尤其在 Windows 平台下优势明显。
  4. 如果您已经安装了 Visual Studio 2022 (编译器) 和 CMake (构建系统),而 vcpkg 负责为您自动管理项目所需的第三方依赖库。

二、vcpkg 的安装

(1)下载 vcpkg

从 vcpkg 的 GitHub 仓库()下载最新版本的 vcpkg。你可以使用 Git 克隆仓库,命令如下:

git clone https://github.com/microsoft/vcpkg

也可以直接下载 ZIP 文件,然后解压到指定目录,例如E:\vcpkg。

(2)编译 vcpkg

在 Windows 系统中,建议使用 PowerShell 进行编译。打开 PowerShell,导航到 vcpkg 目录,例如:

powershell

cd E:\vcpkg

然后运行编译脚本:

powershell

.\bootstrap-vcpkg.bat

编译完成后,会在当前目录下生成vcpkg.exe文件。

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

为了能够更方便地使用 vcpkg 命令,可以将 vcpkg 的安装目录添加到系统环境变量 Path 中。具体操作如下:

  1. 新增变量名VCPKG_ROOT
  2. 在变量值中添加 vcpkg 的安装路径,例如E:\vcpkg。

三、vcpkg 的使用技巧

(1)查看支持的库列表

运行以下命令,查看 vcpkg 支持的所有库:

powershell

.\vcpkg search

或者

powershell

vcpkg search

(如果已配置环境变量)

(2)安装库

以安装 jsoncpp 为例,运行以下命令:

powershell

.\vcpkg install jsoncpp

默认情况下,vcpkg 会编译 x86 版本的库。如果需要编译其他架构的库,可以使用 triplet 参数。例如,编译 64 位 Windows 版本的 jsoncpp:

.\vcpkg install jsoncpp:x64-windows

vcpkg 会自动下载、编译并安装 jsoncpp,同时处理其依赖项。

(3)移除已安装的库

如果需要移除某个库,可以使用 remove 命令:

powershell

.\vcpkg remove jsoncpp

(4)列出已安装的库

运行以下命令,查看已安装的库:

powershell

.\vcpkg list

(5)更新库

• 查看可更新的库:

powershell

.\vcpkg update

• 更新所有库:

powershell

.\vcpkg upgrade

(6)导出和导入库

• 导出库:

powershell

.\vcpkg export jsoncpp --7zip

• 导入库:

powershell

.\vcpkg import jsoncpp.7z

(7)与 Visual Studio 集成

• 全局集成:将 vcpkg 集成到全局环境,适用于所有 Visual Studio 项目:

powershell

.\vcpkg integrate install

集成后,Visual Studio 会自动识别 vcpkg 安装的库,无需手动配置头文件和库路径。

• 移除全局集成:

powershell

.\vcpkg integrate remove

(8)与 CMake 集成

• 在 CMake 项目中使用 vcpkg 管理的库,需要在 CMake 配置中添加 vcpkg 的工具链文件。假设你已经安装并配置了 vcpkg,可以在 CMake 中使用-DCMAKE_TOOLCHAIN_FILE参数来指定 vcpkg 的工具链文件:


```shell
cmake -DCMAKE_TOOLCHAIN_FILE=E:/vcpkg/scripts/buildsystems/vcpkg.cmake ..

• 在 CMakeLists.txt 文件中使用find_package()来查找并链接库。例如,如果你安装了 Boost:

cmake

find_package(Boost REQUIRED)
target_link_libraries(my_target Boost::Boost)

四、注意事项

• 确保你的系统已经安装了必要的编译器和工具,例如在 Windows 上安装 Visual Studio 的 MSVC 编译器。

• 在使用 vcpkg ,如果没有科学上学,可能会遇到网络问题导致下载库失败。可以尝试使用国内的镜像源,例如配置阿里云镜像:

powershell

.\vcpkg set source:https://mirrors.aliyun.com/vcpkg/source

更多推荐