构建系统 (Zig Build System)

Zig 构建系统是 Zig 语言的一个核心部分。它不再使用传统的 MakefileCMake,而是使用 Zig 语言本身来编写构建脚本(通常是 build.zig)。

为什么使用 Zig 构建系统?

  • 跨平台: 构建脚本在任何支持 Zig 的平台上都能运行。
  • 无依赖: 不需要安装 Python, CMake, Ninja 等额外工具。
  • 类型安全: 构建脚本是 Zig 代码,享受编译时检查。
  • 并发: 自动利用多核 CPU 进行并行编译。
  • 包管理: 集成了包管理器,可以轻松处理依赖。

build.zig 示例

一个基本的 build.zig 文件如下所示:

const std = @import("std");

pub fn build(b: *std.Build) void {
    // 获取标准的目标和优化选项
    const target = b.standardTargetOptions(.{});
    const optimize = b.standardOptimizeOption(.{});

    // 定义一个可执行文件
    const exe = b.addExecutable(.{
        .name = "my-project",
        .root_source_file = b.path("src/main.zig"),
        .target = target,
        .optimize = optimize,
    });

    // 将可执行文件安装到输出目录(默认是 zig-out/bin)
    b.installArtifact(exe);

    // 添加运行命令
    const run_cmd = b.addRunArtifact(exe);
    run_cmd.step.dependOn(b.getInstallStep());

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

    const run_step = b.step("run", "Run the app");
    run_step.dependOn(&run_cmd.step);
}

常用命令

  • zig build: 构建项目。
  • zig build run: 构建并运行项目。
  • zig build test: 运行测试。
  • zig build --help: 查看所有可用的构建步骤和选项。

另请参阅: