最小限の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コードを実行できるようにするためには、リンカスクリプトとある程度のアセンブリコードを必要とします。