构建系统 #
一、基本构建 #
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