0

我正在尝试遵循本教程。我从 2016 年开始在 13" Macbook pro 上运行 MacOS Catalina, 10.15.3 。我从这里下载了Mac 的最新版本。我解压缩了文件,并移动了 zig 可执行文件(但不是文件夹)到 usr/local/bin 以便我可以从任何地方调用它。现在,无论我在哪里运行它,我都可以调用zig version并按预期获取输出0.6.0+352976ed2。但是,每当我尝试类似的东西zig run main.zig或者zig build main.zig它只是冻结并且什么都不做。

现在教程确实说它不支持 zig 0.6.0。但我假设这仍然有效,并且教程更多地指的是当它说它不支持 0.6.0 时更改打印方式之类的事情。显然这可能是一个不正确的假设,但我不知道为什么这不起作用。由于 zig 还年轻,缺乏入门教程,所以我不知道该去哪里找。

我之前已经让 zig 0.6.0 与 homebrew 一起工作,但是由于我可能正在考虑贡献或尝试编译器的实验分支,我希望能够运行任意 zig 可执行文件。

4

1 回答 1

0

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

Unable to find zig lib directory

很明显,可执行文件需要与文件夹的其余内容一起使用,我在其中替换了可执行文件。

我在我的主目录中创建了一个名为tools. 我将解压缩的文件夹(称为 zig-macos-x86_64-0.6.0)移动到tools目录中。然后(从我的主目录)我使用这个命令在我的 bin 中创建了一个指向二进制文件的符号链接。

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!
于 2020-10-15T22:25:55.303 回答