Skip to content

Rust 编译

编译器

MinGW 与 MSVC

MinGW, Minimalist GNU for Windows

Windows 平台对 GNU 的移植,内部包含 GCC (实际的编译器)

MSVC

Windows 平台原生的,支持构建 C/C++ 的工具链与运行时

Clang 与 GCC

What is the difference between Clang and GCC? - Quora

GCC, GNU compiler collection

可以编译其它许多语言。

Clang

LLVM, Low Level Virtual Machine Clang 是前端,LLVM 是后端

LLVM IR, Intermediate Representation 独立于具体机器架构和指令集 Source Code -Front End-> IR -Passes-> IR -Back End-> Object Code

Rustc

Overview of the Compiler - Guide to Rustc Development

工具链

环境变量

  • LIBCLANG_PATH 指向 LLVM 的 bin 目录

GitHub - KyleMayes/clang-sys: Rust bindings for libclang.

  • C_INCLUDE_PATH 是 C system headers,libclang 所寻找的变量 /path/to/include

工具

Rust 的 bindgen工具,依赖于 Clang

Requirements - The bindgen User Guide > Cross-compiling doesnt work! · Issue #637

使用 Flake 进行 cross compile

solana-nix/flake.nix > samael/flake.nix

编译 Windows 的 lib

flux/flake.nix