vcpkg基本使用

本文介绍了如何在Windows环境下利用vcpkg工具安装和管理C++库。首先,通过 PowerShell 脚本下载并安装vcpkg到指定目录。接着,详细说明了如何在Visual Studio和VS Code中集成vcpkg,包括设置CMAKE_TOOLCHAIN_FILE。对于VS用户,运行vcpkg integrate install可直接在项目中引用库。最后,展示了vcpkg安装库的命令,并提供了搜索库的方法。虽然在mingw下集成vcpkg存在挑战,但文章提供了实用的指导和参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. vcpkg安装

将下列powershell代码存成ps1文件,在目录下shift右键->打开power shell窗口,运行脚本后vcpkg即安装完成。

# 1. 创建目录、下载vcpkg:
mkdir -f D:/APPs
cd D:/APPs
# github
# git clone https://github.com/microsoft/vcpkg
# gitee
git clone https://gitee.com/mirrors/vcpkg.git

# 2. 安装:运行vcpkg目录下的 bootstrap-vcpkg.bat
cd vcpkg
./bootstrap-vcpkg.bat

# 3. 添加环境变量
setx VCPKG_ROOT $pwd

D:/APPs改为自己想要安装的位置~

2. 使用vcpkg安装的库

2.1 Visual Studio

如果要在Visual Studio工程中使用vcpkg,需要运行:

vcpkg integrate install

☀️☀️☀️这样的话,在VS非CMake工程中可以直接#include<xxx>来引用已安装的库,不需要配置include/lib/dll文件。

这功能简直太👍👍👍了!

建议使用vcpkg的话,直接创建VS工程,特别省心

2.2 Visual Studio + CMake

如果在VSCMake工程中使用,则需要打开CMake设置选项,将 vcpkg toolchain文件路径设置赋值给 CMAKE_TOOLCHAIN_FILE

CMAKE_TOOLCHAIN_FILE是一个命令行参数,通过在执行cmake命令时提供-DCMAKE_TOOLCHAIN_FILE=xxxPath,也可以在CMakeLists.txt中如下设置:

set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}\\scripts\\buildsystems\\vcpkg.cmake")

可以参考官方文档📖:CMAKE_TOOLCHAIN_FILE

如果还是找不到,尝试在VS项目属性页,设置使用vcpkg
在这里插入图片描述

2.3 Vs Code + CMake Tools

官方📖:将以下内容添加到 settings.json 中将使CMake Tools自动使用vcpkg中的第三方库:

{
  "cmake.configureSettings": {
    "CMAKE_TOOLCHAIN_FILE": "[vcpkg root]/scripts/buildsystems/vcpkg.cmake"
  }
}

可以使用Ctrl+Shift+P输入settings.json打开设置,然后添加上述内容,记得将[vcpkg root]换成自己的vcpkg.exe所在目录。

在这里插入图片描述 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mc3F3LPW-1651109608133)(C:\Users\J01058209\AppData\Roaming\Typora\typora-user-images\image-20220426170603464.png)]

但是实际使用遇到的问题不少,有需要再单独研究记录一下~

个人比较想实现windows+minGW+vcpkg的路线,总不太能❌如意……

2. 使用vcpkg管理依赖库

vcpkg安装依赖库的语法为:

# 默认安装x86版本
vcpkg install libhv

# 安装x64版本
vcpkg install libhv:x64-windows

# 或者这样安装x64版本
vcpkg install libhv --triplet=x64-windows

可以使用 search 子命令来查找vcpkg中集成的库,将给出所有相关结果:

PS E:\APPs> vcpkg search hv
gazebo[graphviz]                          Enable model editor's schematic view
graphviz                 2.49.1#2         Graph Visualization Tools
libhv                    1.2.4#1          Libhv is a C/C++ network library similar to libevent/libuv.
libhv[ssl]                                with openssl library
libssh                   0.9.6#2          libssh is a multiplatform C library implementing the SSHv2 protocol on cli...
libssh[crypto]                            Default crypto backend
libssh[mbedtls]                           Crypto support (mbedTLS)
libssh[openssl]                           Crypto support (OpenSSL)
libssh[zlib]                              libssh with zlib
The result may be outdated. Run `git pull` to get the latest results.

If your port is not listed, please open an issue at and/or consider making a pull request:
    https://github.com/Microsoft/vcpkg/issues

如有错误 ❌ ,欢迎指正 ☝️~

如有收获 🍗,点赞👍/评论💬/收藏⭐️/关注👀~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值