动机:我的源文件位于网络(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 或者(最坏的情况)给它一些命令行参数来指定本地缓存目录吗?
指定
ZIG_LOCAL_CACHE_DIR
设置其他目录作为本地缓存
https://wiki.gentoo.org/wiki/Zig#Environment_variables
BratishkaErik 在 https://t.me/ziglang_en
提供的答案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
所以,是的,对于那些不想使用其他答案中提到的环境变量的人来说,这只是一个替代解决方案