vcpkg快速使用教程

7 篇文章 1 订阅
vcpkg是一个由微软维护的跨平台开源库管理工具,类似于Ubuntu的apt-get。它自动下载、编译并管理软件包及其依赖。本文详细介绍了vcpkg的安装、配置、软件包的安装、升级、移除,以及如何与Visual Studio和CMake集成。此外,还提供了清理vcpkg占用空间的方法以及检查项目依赖的工具。
摘要由CSDN通过智能技术生成

vcpkg是一个自动管理开源库的工具,你可以把它想像成Ubuntu的apt-get软件包。

  • 自动下载开源软件包
  • 软件包可以升级版本或补丁包
  • 自动编译软件包
  • 软件包依赖的包自动检查下载编译
  • 可集成至Visual Studio,你只需要引用头文件即可。vs自动引用库文件(编译后vs会自动将库文件(dll/so/a)复制项目运行目录)。

1.1 安装vcpkg

帮助文档

cd E:
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
#vcpkg将安装至E:\vcpkg

安装成功后将E:\vcpkg设置至环境变量PATH

1.1.1 设置默认安装的平台

–triplet=x64-windows表示仅在windows上安装64位软件包

使用下列命令查看软件包支持的平台

vcpkg help triplet

现代软件基本上64位编译的,为节约磁盘空间,可以为–triplet设置系统环境变量“VCPKG_DEFAULT_TRIPLET=x64-windows”,表示默认安装在windows上安装64位软件包。

1.1.2 可选步骤,将vcpkg与Visual Studio配合使用(需要管理员权限)

vcpkg integrate install #安装至Visual Studio
vcpkg integrate remove  #从Visual Studio卸载

1.1.3 软件包升级

cd E:\vcpkg
git pull
vcpkg update
vcpkg upgrade --no-dry-run

1.1.4 查找安装软件包

vcpkg search PackageName

1.1.5 安装软件包

vcpkg install PackageName  --triplet=x64-windows


#如果你设置了VCPKG_DEFAULT_TRIPLET系统环境变量则
vcpkg install PackageName

1.1.6 移除软件包

vcpkg remove PackageName

移除所有过时的软件包

vcpkg remove --outdated

1.1.7 列出已安装的软件包

vcpkg list

1.1.8 集成到CMake

在cmake后添加CMAKE_TOOLCHAIN_FILE变量,值为vcpkg.cmake完整路径

cmake -DCMAKE_TOOLCHAIN_FILE=E:/vcpkg/scripts/buildsystems/vcpkg.cmake -Wno-dev
#-Wno-dev:【可选】抑制开发人员警告。 禁止对CMakeLists.txt文件的作者发出警告。

1.1.9 为vcpkg瘦身

当你使用了段时间后,vcpkg占用了非常大的磁盘空间,这时您可以通过删除packages、buildtrees和downloads文件夹来节省一些磁盘空间。

rmdir /S /Q E:\vcpkg\packages
rmdir /S /Q E:\vcpkg\buildtrees
rmdir /S /Q E:\vcpkg\downloads

vcpkg目录说明

buildtrees: 【允许删除】编译软件包使用的目录
docs:       【不能修改删除】文档和示例
downloads:  【允许删除】所有已下载的工具或源的缓存副本。 运行安装命令时,vcpkg 会首先搜索此处,如果没有会自动下载
installed:  软件包编译后的安装目录,头文件(h/hpp)、库文件(lib/so/a)、二进制文件(dll/exe)。集成Visual Studio后,vs会自动链接到此目录,你只需要引用头文件即可。vs自动引用库文件(编译后vs会自动将库文件(dll/so/a)复制项目运行目录)。
installed\x64-windows\debug:表示此目录中的库文件(lib/so/a)、二进制文件(dll/exe)都是debug模式
installed\x64-windows\lib\manual-link:表示此目录中的库文件(lib/so/a)不会自动引用,需要你在项目中手动设置
packages:   【允许删除】在不同的软件包之间用于暂存的内部文件夹
ports:      【不能修改删除】用于描述每个库的目录、版本和下载位置的文件。 如有需要,可添加自己的端口
scripts:    【不能修改删除】由 vcpkg 使用的脚本(CMake、PowerShell)
toolsrc:    【不能修改删除】vcpkg和相关组件的 C++ 源代码
triplets:   【不能修改删除】包含每个受支持目标平台(如 x86-windows 或 x64-uwp)的设置
*.*         其它文件都不允许手动修改

1.1.9 其它

因为vcpkg太过于自动化了,当开发完成后我们可能不知道使用项目依赖的软件包,我们可以通过下列命令查看:

1.1.9.1 windows

从开始菜单->“Visual Studio 2019”->“x64 Native Tools Command Prompt for VS 2019”中运行

dumpbin /DEPENDENTS PackageName.dll
或者
dumpbin /DEPENDENTS PackageName.exe
1.1.9.2 linux
ldd PackageName.so
ldd PackageName.a
ldd PackageName
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在VSCode中使用vcpkg可以帮助你更好地管理C++项目的软件包依赖。下面是使用vcpkg的步骤: 1. 安装vcpkg:首先,你需要在你的系统上安装vcpkg。你可以从vcpkg的GitHub页面上下载并按照说明进行安装。 2. 配置vcpkg:在VSCode中,你需要配置vcpkg的路径。打开VSCode,点击左侧的扩展图标,搜索并安装"C/C++"扩展。然后,点击左下角的齿轮图标,选择"C/C++: Edit Configurations (UI)"。在弹出的窗口中,找到"vcpkg"一栏,点击"Edit in settings.json"。在settings.json文件中,添加以下配置: ```json "cmake.configureSettings": { "CMAKE_TOOLCHAIN_FILE": "<vcpkg路径>/scripts/buildsystems/vcpkg.cmake" } ``` 将`<vcpkg路径>`替换为你实际安装vcpkg的路径。 3. 创建C++项目:在VSCode中,打开一个文件夹作为你的C++项目的根目录。然后,点击左侧的扩展图标,搜索并安装"C/C++"扩展。接下来,点击左下角的齿轮图标,选择"C/C++: Edit Configurations (UI)"。在弹出的窗口中,点击"Add Configuration",选择"C++ (GDB/LLDB)"。然后,选择"Other"作为项目类型,并在弹出的窗口中输入以下内容: ```json { "name": "vcpkg", "includePath": [ "${workspaceFolder}/**" ], "defines": [], "compilerPath": "g++", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64", "configurationProvider": "ms-vscode.cmake-tools" } ``` 4. 安装和使用软件包:在VSCode中,打开终端(点击顶部菜单的"终端"->"新建终端"),然后使用以下命令安装所需的软件包: ```shell vcpkg install <软件包名称> ``` 将`<软件包名称>`替换为你需要安装的软件包名称。安装完成后,你可以在你的C++代码中使用这些软件包。 5. 构建和运行项目:在VSCode中,打开终端,使用以下命令构建和运行你的C++项目: ```shell cmake -B build cmake --build build ./build/<可执行文件名称> ``` 将`<可执行文件名称>`替换为你的可执行文件的名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kmblack1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值