编译器将打印版本但在构建时冻结
Compiler Will Print Version But Freezes on Build
我正在尝试关注 this tutorial. I am running on MacOS Catalina, 10.15.3 , on a 13" Macbook pro from 2016. I downloaded the latest release from here 以获得 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 来使用自制软件,但由于我可能正在考虑贡献或尝试编译器的实验分支,我希望能够 运行 任意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!
我正在尝试关注 this tutorial. I am running on MacOS Catalina, 10.15.3 , on a 13" Macbook pro from 2016. I downloaded the latest release from here 以获得 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 来使用自制软件,但由于我可能正在考虑贡献或尝试编译器的实验分支,我希望能够 运行 任意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!