diff --git a/learn/advanced/interact-with-c.md b/learn/advanced/interact-with-c.md index 0039457e..c8fadc6b 100644 --- a/learn/advanced/interact-with-c.md +++ b/learn/advanced/interact-with-c.md @@ -223,7 +223,7 @@ fn add(count: c_int, ...) callconv(.C) c_int { ### 为什么 zig 可以做到比 c 更好的编译 -实际上,zig 本身实现了一个 C 的编译器,当然不仅仅如此,zig 还提供了一个比较 **_magic_** 的东西—— [`glibc-abi-tool`](https://github.com/ziglang/glibc-abi-tool),这是一个收集每个版本的 glibc 的 `.abilist` 文件的存储库,还包含一个将它们组合成一个数据集的工具。 +实际上,zig 本身实现了一个 C 的编译器(目前仅限 linux,其他平台仍使用 llvm),当然不仅仅如此,zig 还提供了一个比较 **_magic_** 的东西—— [`glibc-abi-tool`](https://github.com/ziglang/glibc-abi-tool),这是一个收集每个版本的 glibc 的 `.abilist` 文件的存储库,还包含一个将它们组合成一个数据集的工具。 所以,zig 本身所谓的 “**_ships with libc_**” 并不准确,它的确分发 libc,但它只携带每个版本的符号库,仅依赖这个符号库,zig 就可以实现在没有 libc 的情况下仍然正确地进行动态链接!