vcpkg缓存问题研究

vcpkg缓存问题研究

问题描述

使用vcpkg管理c++的库的时候,vcpkg会在c盘某些地方缓存下载的库,如果安装的库过多,这个缓存文件夹会过大占用磁盘空间,我很好奇能否清除掉缓存,给C盘留出空间。

解决方案

官网给出的方案其实并不是大多数人语境中的"清除缓存"

vcpkg官网有给出缓存的相关描述和解决方案。

通过查阅官网文档,我的vcpkg缓存放在

复制代码
C:\Users\user\AppData\Local\vcpkg

这个文件夹下有三个文件夹和一个config文件,官网上所说的清除缓存指的是清除archives这个文件夹里面的内容,这个文件夹里面存的是二进制缓存,可以在项目构建的时候加速构建。

然而,这个archives文件夹只占vcpkg文件夹的很小一部分,比如我的archives文件夹是15M,而vcpkg文件夹有1G,所以按照官网的操作清除这个缓存并没有什么意义。

在很多人的语境中,说"清除缓存",其实是想把下载的占用空间资源很大的库给删除掉。

实际解决方案

经过我的实测,其实可以直接把C:\Users\user\AppData\Local\vcpkg文件夹里面所有的东西都直接给删除掉,下次某个项目需要重新使用cmake build或者使用vcpkg install的时候,vcpkg会自动往这个文件夹里面下载库。

此外,如果使用的vcpkg不是Microsoft Visual Studio自带的,而是从github上clone下来的,那么在本地git仓库中会有downloads packages buildtrees文件夹可能会存储库,这些文件夹不被git追踪,所以也可以通过删掉这些文件夹来减轻硬盘压力。

相关推荐
熊猫_豆豆2 小时前
QT6 Android C++ 自制美观闹钟
android·c++·qt·闹钟
随意起个昵称3 小时前
状压dp-基础题目2([USACO12MAR] Cows in a Skyscraper G)
c++·算法·动态规划
无限的鲜花4 小时前
协程本质是函数加状态机——零基础深入浅出 C++20 协程
c++·算法·c++20
烟漠河洛4 小时前
线上事故复盘:Redis幂等性设计边界没覆盖跨状态请求,订单状态机直接崩了
数据库·redis·缓存
精明的身影4 小时前
C++自学之路1:Hello world
开发语言·c++
旖-旎4 小时前
《LeetCode 64 最小路径和 || LeetCode 174 地下城游戏》
c++·算法·leetcode·动态规划
森林古猿15 小时前
再论斜率优化
c++·学习·算法
水利行业RTU手艺人5 小时前
RTU固件中的“数据保险箱”——离线数据补发系统设计
c++·stm32·单片机·物联网
gugucoding5 小时前
25. 【C语言】二进制文件与随机读写
c语言·开发语言
凯瑟琳.奥古斯特6 小时前
力扣1009补码解法C++实现
开发语言·c++·算法·leetcode·职场和发展