0Pricing
Zig Academy · 课时

构建步骤与 zig build run

连接命名步骤以执行操作。

构建步骤与 zig build run 是 CoddyKit 上的免费 Zig Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Zig Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Zig Academy 课程共包含 4 节课。

步骤就是命名任务

构建不仅可以完成编译。step 是一个命名任务,您可以触发它来运行应用或执行测试。🪜

默认步骤

直接运行 zig build 会执行默认的安装步骤,将构建好的产物编译并复制到 zig-out。

zig build

创建运行产物

要通过构建系统运行可执行文件,请使用 addRunArtifact 创建运行命令。它知道如何启动您构建的二进制文件。

const run_cmd = b.addRunArtifact(exe);

安装后运行

使用 step.dependOn 让运行步骤依赖于安装步骤,这样启动前就能确保最新的二进制文件已经就位。

run_cmd.step.dependOn(b.getInstallStep());

公开一个命名步骤

使用 b.step 为步骤设置一个易于理解的名称。第一个参数是用户输入的名称,第二个参数是它的描述。

const run_step = b.step("run", "Run the app");

连接步骤

将运行命令连接到这个命名步骤,这样触发它时才能真正执行任务。现在,名称 run 有了实际意义。

run_step.dependOn(&run_cmd.step);

调用它

连接好步骤后,zig build run 会构建应用并立即运行它。一条命令即可从源代码完成到输出。

zig build run

传递参数

使用 addArgs 将命令行参数转发给程序;在命令行中使用双连字符后,可以从 b.args 读取这些参数。

if (b.args) |args| run_cmd.addArgs(args);

双连字符后的参数

-- 后面的所有内容都会传递给应用,而不是 Zig,因此 zig build run -- hello 会将 hello 传递给您的程序。

zig build run -- hello world

列出可用步骤

忘记步骤名称了吗?运行 zig build --help,即可查看您使用 b.step 声明的每个步骤及其描述。

zig build --help

步骤构成一棵树

每个步骤都依赖于其他步骤,因此触发一个步骤时,会按正确顺序运行整个依赖链,并且只重新构建发生变化的部分。✅

快速检查

请回想一下,名称 run 是如何变成可用命令的。

回顾

您连接了一个运行步骤:使用 addRunArtifact,依赖安装步骤,用 b.step 为它命名,并转发 b.args,使 zig build run 能够启动应用。🎯

常见问题解答

「构建步骤与 zig build run」课时是免费的吗?

是的 — 「构建步骤与 zig build run」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Zig Academy 课程的其余内容,请升级到 CoddyKit PRO。 Zig Academy 课程共包含 4 节课。

「构建步骤与 zig build run」这节课中我会学到什么?

连接命名步骤以执行操作。 你通过在浏览器中直接运行的动手代码来练习 Zig Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Zig Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Zig Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「构建步骤与 zig build run」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Zig Academy 课中编写并运行代码吗?

能。每节 Zig Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. build.zig 文件的结构
  2. 声明可执行文件和库
  3. 构建步骤与 zig build run
  4. 构建选项与标志
← 返回 Zig Academy