由于asdf
没有windows
版本,所以这里使用anyzig
。
一个通用的 Zig 可执行文件,允许你运行任何版本的 Zig。由于你的 PATH
中只能有一个 zig
可执行文件,anyzig 解决了只能使用一个版本的限制。调用的 Zig 版本是从 build.zig.zon
文件中的 minimum_zig_version
字段读取的。build.zig.zon
文件通过搜索当前目录或任意父目录来定位。
每当需要新的 Zig 版本时,anyzig 会调用等同于 zig fetch ZIG_DOWNLOAD_URL
的命令,将对应版本下载到全局缓存中。
$ zig 0.13.0 build-exe myproject.zig
$ zig 0.14.0-dev.3028+cdc9d65b0 build-exe mynewerproject.zig
anyzig 还添加了一些自定义命令,可以通过 zig any ...
查询和调用。
Mach 是一个游戏引擎,提供了一个镜像用于下载 Zig 编译器以及它自己“指定版本”(nominated versions)。https://machengine.org/docs/nominated-zig/
Mach 的版本格式不同(例如 2024.10.0-mach
),且版本号总是以 -mach
结尾。因此,如果 anyzig 发现一个类似的版本号,它就会知道这是一个 Mach 版本,需要通过 Mach 的下载索引来解析成实际的下载 URL。
<aside> 💡
Mach 是一个游戏引擎项目。它需要使用特定版本的 Zig 编译器来构建。
Mach 版本的 Zig 编译器版本号格式和官方 Zig 版本号不一样,比如形如:
2024.10.0-mach
• 这个版本号总是以 -mach
结尾,这表示它是 Mach 专门做的版本,而不是 Zig 官方的普通版本。
</aside>
anyzig 还会检查你 build.zig.zon
文件中的 .mach_zig_version = "..."
属性,并优先使用这个属性替代 .minimum_zig_version
。
使用 .mach_zig_version
替代 .minimum_zig_version
的原因是:未来 Zig 可能会对 minimum_zig_version
字段做一些验证,而使用 Mach 版本时,这个验证很可能会失败,因此用 .mach_zig_version
来避免这个问题。
下载解压后,添加到环境变量。
需要指定版本
❯ zig 0.14.1 init
anyzig: appdata 'C:\\Users\\{username}\\AppData\\Local\\anyzig'
anyzig: zig '0.14.1' already exists at 'C:\\Users\\{username}\\AppData\\Local\\zig\\p\\N-V-__8AADFbwBIm9-O6Nm2fcNyYCR1DpSNvEl8Y_YOVvaHg'
info: created build.zig
info: created build.zig.zon
info: created src\\main.zig
info: created src\\root.zig
info: see `zig build --help` for a menu of options
anyzig: C:\\Users\\{username}\\Desktop\\zig-pro\\build.zig