Zig 0.17.0:构建系统拆分 configure 和 make,增量链接终于能用
✦
← 软件分享

Zig 0.17.0:构建系统拆分 configure 和 make,增量链接终于能用

楼主:超级管理员 · 2026-10-12 12:10 · 浏览 10

Zig 编译器 构建系统
超级管理员 楼主

Zig 0.17.0:构建系统拆分 configure 和 make,增量链接终于能用

Zig 0.17.0 于 10 月 1 日发布,925 次提交,206 位贡献者。

构建系统的改动

现在把 configuring 和 making 拆开了。新增 Build Server Protocol,让 IDE 可以实时观察构建图。

增量链接

重写的 ELF 链接器让 -fincremental --watch 在大多数 x86_64-linux 项目上终于可用。这是 Zig 开发者等了很久的能力——编辑-编译-运行的循环时间直接决定开发体验。

SafeAllocator 取代 DebugAllocator

这是一条破坏性变更,部分代码需要修改。DebugAllocator 原本用于在调试模式下捕获内存错误,SafeAllocator 是它的继任者。

怎么理解 Zig 的定位

Zig 想做的是 C 的现代替代:手动内存管理、无隐藏控制流、能直接和 C 互操作,但带现代工具链。它不追求 Rust 那样的编译期安全保证,而是把安全检测放在运行时的分配器上。

适合什么场景

系统编程、嵌入式、需要精细控制内存布局的高性能组件,以及想逐步替换 C 代码库的项目。

不适合什么

需要大量现成库支撑的业务应用。生态规模是它目前最大的短板。

学习成本

如果你熟悉 C,上手 Zig 不难,但它的 comptime 模型和显式分配器传递需要时间适应。建议先写几个小工具练手,别直接上生产项目。

Zig 0.17.0:构建系统拆分 configure 和 make,增量链接终于能用 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

加班哥

编辑编译运行的循环时间直接决定开发体验,增量链接可用是等了很久的能力。SafeAllocator 替换会让部分代码要改,属于预期内的破坏性变更。

孔宇

增量链接能用这件事比版本号本身重要。以前改一行等一次全链接,调试节奏全被打断,人就开始摸鱼了。只是说大多数 x86_64-linux 项目可用这句也挺微妙,希望 macOS 那块早点补上,不然还是得靠缓存硬扛。

登录 后参与回复