---
title: Rust编译流程介绍
description: "Rust是一种编译型语言，在较低的层级上实现了各种高层级语言才有的便捷特性。它和较低层级C语言一样高性能，同时又跟Python高层级语言一样，拥有自带的安全性和易用性。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenggrf/codeprtr/kunpengtaishanporting_12_0097.html
sourcePath: /source/zh/kunpenggrf/codeprtr/kunpengtaishanporting_12_0097.html
indexId: 0642325c6542cf79a1291c5117e913fe0416c42c045d5268a99898effb9a056365
---
# Rust编译流程介绍

Rust是一种编译型语言，在较低的层级上实现了各种高层级语言才有的便捷特性。它和较低层级C语言一样高性能，同时又跟Python高层级语言一样，拥有自带的安全性和易用性。

Rust的编译器为rustc，rustc使用LLVM作为编译器后端生成对应的机器码。Rust从源码到可执行程序基本流程如图1所示。

本质上讲rustc是一个LLVM编译前端，它将代码编译为LLVM IR，后续的编译和链接工作是交给LLVM执行的。

由此Rust开发的程序拥有很好的可移植性，可以在当前平台下编译出可运行于其他平台的应用程序和库。

Rust编译流程大致如下：

图1 Rust程序编译执行过程

1. rustc对Rust源码进行词法分析及解析，转换为HIR高级中间表示。
2. 进行静态类型检查等分析生成MIR中级中间表示文件，进一步完成LLVM IR转换及IR优化生成LLVM IR中间表示。
3. 利用LLVM后端编译、链接，生成对应平台的机器码（可执行程序）。

Rust语言迁移主要包含SSE类指令、内嵌汇编的源码文件，一般的Rust源码文件，只需在鲲鹏平台重新编译即可完成迁移。
