极小的 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 代码能够顺利运行。