为什么我需要一个C++编译器来编译Rust?

Gia*_*sio 11 rust

这可能是一个非常愚蠢的问题,但我想知道为什么Rust编译器(用Rust编写)本身需要一个C++编译器.

我的意思是,从分发中预编译的Rust编译器应该就够了,不应该吗?

rod*_*igo 19

这实际上是一个合理的问题.答案是,目前,生锈源包含一个略微修补的LLVM版本,LLVM是用C++编写的,并且不是以二进制形式分发的.所以你需要一个C++编译器来构建它.

  • @GiacomoTesio:嗯,你可能会成功.但我认为你有更好的机会从支持的平台交叉编译Rust. (2认同)
  • @GiacomoTesio对于初学者来说,C后端必须完美地将LLVM IR的语义与所有重要的极端情况映射到标准C,并且您的目标C编译器必须完美地遵守标准.这已经是两个很大的假设.此外,LLVM IR根本不可移植:数据类型的大小,ABI和各种其他平台假设被烘焙到由前端生成的IR中. (2认同)