我正在尝试遵循this tutorial。我从2016年开始在13“Macbook Pro的MacOS Catalina 10.15.3上运行。我从here下载了适用于Mac的最新版本。我解压缩了文件,并移动了zig可执行文件(但未移动其余内容)。文件夹)到usr/local/bin,所以我可以从任何地方调用它。现在,无论在哪里运行,都可以调用zig version并按预期获取输出0.6.0+352976ed2。但是,每当尝试使用zig run main.zigzig build main.zig之类的东西时,它都会冻结什么也没做。
现在,该教程确实说它不支持zig 0.6.0。但是我以为这仍然可以工作,并且本教程在说它不支持0.6.0时,更多地指的是诸如更改打印方式的内容。显然,这可能是一个错误的假设,但我不知道为什么这行不通。而且由于zig年轻,缺乏入门教程,所以我不知道该去哪里。
以前我已经使用过zig 0.6.0来进行自制软件,但是由于我潜在地希望在线下贡献或尝试编译器的实验分支,因此我希望能够运行任意zig可执行文件。

最佳答案

我能够解决我的问题。首先,我从usr/local/bin中删除了zig,并删除了与原始下载相关的任何其他文件。然后,我下载了Mac的0.6.0版本,而不是下载主版本。我解压缩了。我尝试直接从那里进行编译,并且可以正常工作。但是,当我将其移动到usr/local/bin时,它给了我错误,

Unable to find zig lib directory
因此很明显,可执行文件必须与文件夹的其余内容(我在其中替换了可执行文件)一起使用。
我在主目录中创建了一个名为tools的新目录。我将解压缩的文件夹(称为zig-macos-x86_64-0.6.0)移动到tools目录中。然后(从我的主目录)使用此命令在我的bin中创建了到二进制文件的符号链接(symbolic link)。
ln -s tools/zig-macos-x86_64-0.6.0/zig ../../usr/local/bin/zig
我退出并重新启动终端。现在zig version生成0.6.0,并且在编译程序main.zig时,
const std = @import("std");

pub fn main() void {
    std.debug.warn("Hello, {}!\n", .{"World"});
}
使用命令zig run main.zig我得到正确的输出
Hello, World!

08-19 13:08