极小的 no_std 程序
#![no_main]
#![no_std]
use core::panic::PanicInfo;
#[panic_handler]
fn panic(_panic: &PanicInfo) -> ! {
loop {}
}
- 这将编译为空二进制文件。
std
提供了一个 panic 处理程序;如果没有它,我们就必须自行提供。- 其他 crate(例如
panic-halt
)也可以提供该处理程序。 - 根据目标不同,可能需要使用
panic = "abort"
进行编译,以避免出现与eh_personality
相关的错误。 - 请注意,未提供
main
函数或任何其他入口点;您可以自行定义入口点。通常需要使用链接器脚本和一些汇编代码进行设置工作,以便 Rust 代码能够顺利运行。