最小限のno_std
プログラム
#![no_main] #![no_std] use core::panic::PanicInfo; #[panic_handler] fn panic(_panic: &PanicInfo) -> ! { loop {} }
- このコードは空のバイナリにコンパイルされます。
- パニックハンドラは
std
が提供するので、それを使わない場合は自分で提供する必要があります。 - あるいは、
panic-halt
のような別のクレートが提供するパニックハンドラを利用することもできます。 - ターゲットによっては、
eh_personality
に関するエラーを回避するためにpanic = "abort"
を指定してコンパイルする必要があります。 - なお、
main
のようなプログラムの規定エントリポイントはないので、自分でエントリポイントを定義する必要があります。通常、Rustコードを実行できるようにするためには、リンカスクリプトとある程度のアセンブリコードを必要とします。