重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
rust-cross by mohitmishra786/low-level-dev-skills
npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill rust-cross指导代理完成 Rust 交叉编译:添加 rustup 目标、使用 cross 进行基于 Docker 的密封交叉构建、使用 cargo-zigbuild 进行零配置交叉编译、配置 .cargo/config.toml 以及嵌入式裸机目标。
# 列出已安装的目标
rustup target list --installed
# 列出所有可用目标
rustup target list
# 添加一个目标
rustup target add aarch64-unknown-linux-gnu
rustup target add x86_64-unknown-linux-musl # 静态 Linux
rustup target add wasm32-unknown-unknown # WASM
rustup target add thumbv7m-none-eabi # Cortex-M
# 为目标平台构建
cargo build --target aarch64-unknown-linux-gnu --release
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 目标 | 用例 |
|---|---|
x86_64-unknown-linux-gnu | Linux x86-64 (glibc) |
x86_64-unknown-linux-musl | Linux x86-64 (musl, 静态) |
aarch64-unknown-linux-gnu | ARM64 Linux (树莓派 4, AWS Graviton) |
aarch64-unknown-linux-musl | ARM64 Linux 静态 |
x86_64-pc-windows-gnu | Windows x86-64 (MinGW) |
x86_64-pc-windows-msvc | Windows x86-64 (MSVC) |
x86_64-apple-darwin | macOS x86-64 |
aarch64-apple-darwin | macOS Apple Silicon |
wasm32-unknown-unknown | WASM (浏览器) |
wasm32-wasi | 带 WASI 的 WASM |
thumbv7m-none-eabi | Cortex-M3 裸机 |
thumbv7em-none-eabihf | 带 FPU 的 Cortex-M4/M7 |
riscv32imac-unknown-none-elf | RISC-V 32 位裸机 |
cross 使用预构建的、包含正确交叉工具链的 Docker 镜像:
# 安装
cargo install cross
# 构建(可替代 cargo 使用)
cross build --target aarch64-unknown-linux-gnu --release
cross test --target aarch64-unknown-linux-gnu
# Cross.toml — 项目配置
# Cross.toml
[target.aarch64-unknown-linux-gnu]
image = "ghcr.io/cross-rs/aarch64-unknown-linux-gnu:main"
pre-build = [
"apt-get update && apt-get install -y libssl-dev:arm64"
]
[build.env]
passthrough = ["PKG_CONFIG_PATH", "OPENSSL_DIR"]
zig cc 提供了一个完整的 C 交叉工具链 —— 无需系统交叉编译器:
# 安装
cargo install cargo-zigbuild
# 同时需要安装 zig:https://ziglang.org/download/
# 构建(无需 Docker,无需系统交叉编译器)
cargo zigbuild --target aarch64-unknown-linux-gnu --release
cargo zigbuild --target x86_64-unknown-linux-musl --release
# 指定 glibc 版本的目标(对兼容性很重要)
cargo zigbuild --target aarch64-unknown-linux-gnu.2.17 --release
# 这将针对 glibc 2.17 进行构建(兼容性很好)
# 从 Linux/macOS 构建 Windows 目标
cargo zigbuild --target x86_64-pc-windows-gnu --release
cargo-zigbuild 相对于 cross 的优势:
# .cargo/config.toml
[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc" # 系统交叉链接器
# 或者使用 zig:
# linker = "zig"
# rustflags = ["-C", "link-arg=cc", "-C", "link-arg=-target", "-C", "link-arg=aarch64-linux-gnu"]
[target.x86_64-unknown-linux-musl]
linker = "x86_64-linux-musl-gcc"
rustflags = ["-C", "target-feature=+crt-static"]
[target.wasm32-unknown-unknown]
runner = "wasmtime" # 使用 wasmtime 运行 WASM 测试
[target.thumbv7m-none-eabi]
runner = "qemu-arm -cpu cortex-m3"
# 添加 musl 目标
rustup target add x86_64-unknown-linux-musl
# 构建静态链接的二进制文件
cargo build --target x86_64-unknown-linux-musl --release
# 验证是否为静态
file target/x86_64-unknown-linux-musl/release/myapp
# → ELF 64-bit, statically linked, not stripped
# 或者使用 cargo-zigbuild(更简单的 musl)
cargo zigbuild --target x86_64-unknown-linux-musl --release
# .cargo/config.toml
[build]
target = "thumbv7em-none-eabihf" # 设置默认目标
[target.'cfg(target_arch = "arm")']
runner = "probe-run --chip STM32F411CE"
// src/main.rs
#![no_std]
#![no_main]
use core::panic::PanicInfo;
#[cortex_m_rt::entry]
fn main() -> ! {
loop {}
}
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
loop {}
}
# Cargo.toml
[dependencies]
cortex-m = "0.7"
cortex-m-rt = "0.7"
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
panic = "abort"
cargo build --release # 使用 .cargo/config.toml 中设置的默认目标
关于目标三元组参考和嵌入式设置详情,请参阅 references/。
skills/rust/rustc-basics 进行编译器和配置文件配置skills/compilers/cross-gcc 进行底层交叉编译器设置skills/zig/zig-cross 了解 Zig 的原生交叉编译方法skills/build-systems/cmake每周安装次数
47
代码仓库
GitHub 星标数
34
首次出现
2026年2月21日
安全审计
安装于
opencode43
github-copilot43
gemini-cli42
amp42
cline42
codex42
Guide agents through Rust cross-compilation: adding rustup targets, using cross for hermetic Docker-based cross-builds, cargo-zigbuild for zero-setup cross-compilation, .cargo/config.toml configuration, and embedded bare-metal targets.
# List installed targets
rustup target list --installed
# List all available targets
rustup target list
# Add a target
rustup target add aarch64-unknown-linux-gnu
rustup target add x86_64-unknown-linux-musl # static Linux
rustup target add wasm32-unknown-unknown # WASM
rustup target add thumbv7m-none-eabi # Cortex-M
# Build for target
cargo build --target aarch64-unknown-linux-gnu --release
| Target | Use case |
|---|---|
x86_64-unknown-linux-gnu | Linux x86-64 (glibc) |
x86_64-unknown-linux-musl | Linux x86-64 (musl, static) |
aarch64-unknown-linux-gnu | ARM64 Linux (Raspberry Pi 4, AWS Graviton) |
aarch64-unknown-linux-musl | ARM64 Linux static |
x86_64-pc-windows-gnu | Windows x86-64 (MinGW) |
x86_64-pc-windows-msvc |
cross uses pre-built Docker images with the correct cross-toolchain:
# Install
cargo install cross
# Build (drop-in replacement for cargo)
cross build --target aarch64-unknown-linux-gnu --release
cross test --target aarch64-unknown-linux-gnu
# Cross.toml — project configuration
# Cross.toml
[target.aarch64-unknown-linux-gnu]
image = "ghcr.io/cross-rs/aarch64-unknown-linux-gnu:main"
pre-build = [
"apt-get update && apt-get install -y libssl-dev:arm64"
]
[build.env]
passthrough = ["PKG_CONFIG_PATH", "OPENSSL_DIR"]
zig cc ships a complete C cross-toolchain — no system cross-compiler needed:
# Install
cargo install cargo-zigbuild
# Also needs zig installed: https://ziglang.org/download/
# Build (no Docker, no system cross-compiler)
cargo zigbuild --target aarch64-unknown-linux-gnu --release
cargo zigbuild --target x86_64-unknown-linux-musl --release
# Target with glibc version (important for compatibility)
cargo zigbuild --target aarch64-unknown-linux-gnu.2.17 --release
# This builds against glibc 2.17 (very compatible)
# Windows from Linux/macOS
cargo zigbuild --target x86_64-pc-windows-gnu --release
cargo-zigbuild advantages over cross:
# .cargo/config.toml
[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc" # System cross-linker
# or with zig:
# linker = "zig"
# rustflags = ["-C", "link-arg=cc", "-C", "link-arg=-target", "-C", "link-arg=aarch64-linux-gnu"]
[target.x86_64-unknown-linux-musl]
linker = "x86_64-linux-musl-gcc"
rustflags = ["-C", "target-feature=+crt-static"]
[target.wasm32-unknown-unknown]
runner = "wasmtime" # Run WASM tests with wasmtime
[target.thumbv7m-none-eabi]
runner = "qemu-arm -cpu cortex-m3"
# Add musl target
rustup target add x86_64-unknown-linux-musl
# Build statically linked binary
cargo build --target x86_64-unknown-linux-musl --release
# Verify it's static
file target/x86_64-unknown-linux-musl/release/myapp
# → ELF 64-bit, statically linked, not stripped
# Or with cargo-zigbuild (easier musl)
cargo zigbuild --target x86_64-unknown-linux-musl --release
# .cargo/config.toml
[build]
target = "thumbv7em-none-eabihf" # Set default target
[target.'cfg(target_arch = "arm")']
runner = "probe-run --chip STM32F411CE"
// src/main.rs
#![no_std]
#![no_main]
use core::panic::PanicInfo;
#[cortex_m_rt::entry]
fn main() -> ! {
loop {}
}
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
loop {}
}
# Cargo.toml
[dependencies]
cortex-m = "0.7"
cortex-m-rt = "0.7"
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
panic = "abort"
cargo build --release # Uses default target from .cargo/config.toml
For target triple reference and embedded setup details, see references/.
skills/rust/rustc-basics for compiler and profile configurationskills/compilers/cross-gcc for the underlying cross-compiler setupskills/zig/zig-cross for Zig's native cross-compilation approachskills/build-systems/cmake when Rust is part of a CMake cross-buildWeekly Installs
47
Repository
GitHub Stars
34
First Seen
Feb 21, 2026
Security Audits
Gen Agent Trust HubFailSocketPassSnykPass
Installed on
opencode43
github-copilot43
gemini-cli42
amp42
cline42
codex42
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
127,000 周安装
使用Playwright进行Blazor端到端UI测试:完整指南与最佳实践
188 周安装
mypy Python静态类型检查器教程 - 渐进式类型化、类型安全与代码规范
192 周安装
Readwise Reader RSS 订阅源智能跟进助手 - feed-catchup 自动化管理未读内容
191 周安装
Hono RPC:零代码生成的TypeScript类型安全API客户端,实现全栈类型共享
195 周安装
CEO顾问:战略规划、财务建模与领导力框架,助力CEO决策与组织转型
188 周安装
Go HTTP框架选择指南:net/http、Chi、Gin、Echo、Fiber对比与REST API开发
194 周安装
| Windows x86-64 (MSVC) |
x86_64-apple-darwin | macOS x86-64 |
aarch64-apple-darwin | macOS Apple Silicon |
wasm32-unknown-unknown | WASM (browser) |
wasm32-wasi | WASM with WASI |
thumbv7m-none-eabi | Cortex-M3 bare metal |
thumbv7em-none-eabihf | Cortex-M4/M7 with FPU |
riscv32imac-unknown-none-elf | RISC-V 32-bit bare metal |