如何更改zig构建系统的本地缓存目录?

问题描述 投票:0回答:2

动机:我的源文件位于网络(samba)共享上。

zig build

失败

错误:意外

。为了克服这个问题(否则我必须在每次构建之前删除 ./zig-cache/ 文件夹)并节省时间(以及可能的 SSD 驱动器),我想使用 RAMdrive 作为本地缓存。我像这样修改了我的 build.zig:

const std=@import("std");
const Builder=@import("std").build.Builder;

pub fn build(b:*Builder) void {
    b.cache_root=.{.path="I:/my_build_cache",.handle=std.fs.openDirAbsolute("I:/",.{}) catch unreachable};
    const target=b.standardTargetOptions(.{});
[...]

其中 I:/ 是我的 RAMdrive。它有点有效(一次),但不能解决我的问题,因为 zig 仍然创建 ./zig-cache/ 文件夹来构建 build.exe,然后使用 I:/my_build_cache 来构建其他工件。就上下文而言,这是在 Windows 上,但同样欢迎 Linux 的解决方案。我可以在构建过程的早期设置一些环境变量来影响 zig.exe 或者(最坏的情况)给它一些命令行参数来指定本地缓存目录吗?

build directory zig
2个回答
5
投票

指定

ZIG_LOCAL_CACHE_DIR
设置其他目录作为本地缓存

https://wiki.gentoo.org/wiki/Zig#Environment_variables

BratishkaErik 在 https://t.me/ziglang_en

提供的答案

4
投票
zig build --help | grep cache
  --cache-dir [path]           Override path to local Zig cache directory
  --global-cache-dir [path]    Override path to global Zig cache directory

所以,是的,对于那些不想使用其他答案中提到的环境变量的人来说,这只是一个替代解决方案

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.