【问题标题】:Compiler Will Print Version But Freezes on Build编译器将打印版本但在构建时冻结
【发布时间】:2020-10-15 21:00:49
【问题描述】:

我正在尝试关注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 与 homebrew 一起使用,但由于我可能正在考虑贡献或尝试编译器的实验分支,我希望能够运行任意 zig 可执行文件。

【问题讨论】:

    标签: unix terminal compiler-errors zig


    【解决方案1】:

    我能够解决我的问题。首先,我从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 中创建了一个指向二进制文件的符号链接。

    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!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多