gpt4 book ai didi

c++ - 使用 Ninja 构建系统,我可以清理中间构建产品吗?

转载 作者:太空宇宙 更新时间:2023-11-04 02:28:33 24 4
gpt4 key购买 nike

当我使用 CMake 生成树外 Ninja 构建时,能够删除中间构建产品(即目标文件和静态库)将很有用,以节省我们 CI 服务器上的磁盘空间。有办法做到这一点吗?

最佳答案

可以使用 Ninja 按规则进行清理,但仅使用 Ninja 无法知道哪些规则生成中间体;相反,我们必须求助于 shell 脚本:

grep "^rule.*\(_COMPILER_\|_STATIC_LIBRARY_\)" rules.ninja | \
cut -d' ' -f2 | xargs -n1 ninja -t clean -r

这会为那些生成目标文件和静态库的规则搜索 rules.ninja 文件,然后调用 ninja -t clean -r <rule>为了进行实际清洁。 Windows 上的等效功能通过以下方式实现:

FOR /f "tokens=2" %%R IN ('findstr "_COMPILER_ _STATIC_LIBRARY_" rules.ninja') DO (
ninja -t clean -r %%~R
)

这当然是一个 hack,但它为我们节省了大量的磁盘空间,因此值得记录,我认为。

关于c++ - 使用 Ninja 构建系统,我可以清理中间构建产品吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47269979/

24 4 0
文章推荐: python - BeautifulSoup 爬虫解析
文章推荐: javascript - 环回 IO OAuth 不起作用
文章推荐: html - CSS 未将高度和背景颜色应用于
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com