构建系统 (Zig Build System)
Zig 构建系统是 Zig 语言的一个核心部分。它不再使用传统的 Makefile 或 CMake,而是使用 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: 查看所有可用的构建步骤和选项。