微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

编译器将打印版本但在构建时冻结

如何解决编译器将打印版本但在构建时冻结

我正在尝试关注this tutorial。我从2016年开始在MacOS Catalina 10.15.3上的13“ Macbook pro上运行。我从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中创建了到二进制文件的符号链接。

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!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。