Rust是如何编译成机器代码的?

Rust是如何编译成机器代码的?,rust,Rust,我最近一直在看这本书。它是如何工作的?Rust代码似乎被编译成ELF或PE(etc)二进制文件,但我还没有找到任何关于如何实现的信息?是否将其编译为中间格式,然后以gxx为例进行编译?任何帮助(或链接)都将不胜感激。Rust编译器的代码生成阶段主要由LLVM完成。LLVM是一组用于构建编译器的工具,最著名的是由C[++]编译器clang[++]使用 首先,Rust编译器(例如,就像clang)执行所有特定于Rust的工作,如类型和借用检查;最后生成LLVM-IR。IR代表中间表示,它是。。。与汇

我最近一直在看这本书。它是如何工作的?Rust代码似乎被编译成ELF或PE(etc)二进制文件,但我还没有找到任何关于如何实现的信息?是否将其编译为中间格式,然后以gxx为例进行编译?任何帮助(或链接)都将不胜感激。

Rust编译器的代码生成阶段主要由LLVM完成。LLVM是一组用于构建编译器的工具,最著名的是由C[++]编译器
clang[++]
使用

首先,Rust编译器(例如,就像
clang
)执行所有特定于Rust的工作,如类型和借用检查;最后生成LLVM-IR。IR代表中间表示,它是。。。与汇编相当,但更高一点,最重要的是:平台独立。然后Rust编译器只调用☏ LLVM说:

嘿,伙计,你能接受这个IR并为当前平台生成机器代码吗?那太好了◕ ◡ ◕

LLVM对此作出响应:


Rust编译器使用LLVM作为后端,就像其他编译器一样(clang、Swift和其他编译器)。这回答了你的问题吗?不清楚你是什么asking@aochagavia我认为很清楚他在问什么。这个好问题对我帮助很大。编译过程的各个部分彼此都很礼貌。这是一个非常简洁但有趣的类比。如何在。。。有些台词,但不是很多。