【发布时间】:2019-10-03 08:11:16
【问题描述】:
如果我没有安装 C++ 工具链,使用 rustc foo.rs 编译 Rust 文件会失败。但是在编译 Go 程序时,不需要这样的工具链。这是为什么呢?
【问题讨论】:
-
注意:Rust 社区正在开发一个 Rust 后端 (cranelift) 作为 LLVM 的替代品(但不是替代品)。尽管如此,rustc 编译器仍然依赖于存在的 libc 实现。我认为 steed(嵌入式)和 relibc(Redox)是关于在 Rust 中重新实现 libc,但不清楚它们在哪里。
-
我认为这个问题要么太宽要么太小,基本上答案是因为 rustc 需要它。长答案太宽泛了。
-
Rust 的答案是默认情况下它通过静态链接到 libc 进行编译。如果您使用标志进行动态链接,我想知道是否必须存在 C 工具链。不过,我对 Go 知之甚少,无法回答。
-
@Stargateur 如果您是编程新手,编译器基础结构可能非常神秘。问为什么一个看似无关的人依赖于另一个人是一个完全公平的问题。似乎编程也与我有关,但是现在有很多深奥的 SE,人们喜欢分裂头发。
-
@Svend 我没有说这不是主题,我说它太宽泛了。解释“编译器基础结构”过于宽泛。
标签: c++ go rust toolchain build-tools