构建系统 #

一、基本构建 #

1.1 初始化项目 #

bash
mkdir myproject
cd myproject
zig init

生成的文件:

text
myproject/
├── build.zig
├── build.zig.zon
└── src/
    └── main.zig

1.2 build.zig 基础 #

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 = "myapp",
        .root_source_file = b.path("src/main.zig"),
        .target = target,
        .optimize = optimize,
    });
    
    b.installArtifact(exe);
    
    const run_cmd = b.addRunArtifact(exe);
    if (b.args) |args| {
        run_cmd.addArgs(args);
    }
    
    const run_step = b.step("run", "Run the application");
    run_step.dependOn(&run_cmd.step);
}

1.3 构建命令 #

bash
zig build          # 构建
zig build run      # 运行
zig build test     # 测试
zig build install  # 安装

二、构建步骤 #

2.1 可执行文件 #

zig
const exe = b.addExecutable(.{
    .name = "myapp",
    .root_source_file = b.path("src/main.zig"),
    .target = target,
    .optimize = optimize,
});

2.2 静态库 #

zig
const lib = b.addStaticLibrary(.{
    .name = "mylib",
    .root_source_file = b.path("src/lib.zig"),
    .target = target,
    .optimize = optimize,
});

2.3 测试 #

zig
const unit_tests = b.addTest(.{
    .root_source_file = b.path("src/main.zig"),
    .target = target,
    .optimize = optimize,
});

const run_unit_tests = b.addRunArtifact(unit_tests);

const test_step = b.step("test", "Run unit tests");
test_step.dependOn(&run_unit_tests.step);

三、依赖管理 #

3.1 build.zig.zon #

json
.{
    .name = "myproject",
    .version = "0.1.0",
    .dependencies = .{
        .@"some-lib" = .{
            .url = "https://github.com/user/some-lib/archive/refs/tags/v1.0.0.tar.gz",
            .hash = "1220...",
        },
    },
    .paths = .{
        "build.zig",
        "build.zig.zon",
        "src",
    },
}

3.2 使用依赖 #

zig
const some_lib = b.dependency("some-lib", .{
    .target = target,
    .optimize = optimize,
});

exe.root_module.addImport("some-lib", some_lib.module("some-lib"));

四、总结 #

构建系统要点:

概念 说明
build.zig 构建脚本
build.zig.zon 项目配置
addExecutable 添加可执行文件
addStaticLibrary 添加静态库
addTest 添加测试

恭喜你完成 Zig 语言学习!

最后更新:2026-03-27