組み込みデバイスで Rust を使用するプロジェクトに取り組んでおり、C から呼び出すことができる関数を Rust で記述しようとしています。多かれ少なかれこのチュートリアルに従って、標準ライブラリなしでプロジェクトをコンパイルします: Embedded Rust Right今!
私の Rust コードは問題なく .o ファイルにコンパイルされますが、arm-none-eabi-ld を使用して C と Rust オブジェクト ファイルをリンクしようとすると問題が発生します。次のようなエラーがいくつか発生します。
rustfunc.o: In function `func':
rustfunc.0.rs:(.text.hash+0x18): undefined reference to `__aeabi_memclr8'
...
/rust/src/libcore/slice.rs:1446: undefined reference to `__aeabi_memcpy'
/rust/src/libcore/fmt/num.rs:196: undefined reference to `__aeabi_memclr4'
私が最も困惑しているのは、オブジェクト ファイルをリンクしているだけなのに、エラーが Rust コードと libcore のコードの両方を参照していることです。
これらのエラーの意味と、リンカーがこれらの問題を解決できない理由を知っている人はいますか? ありがとう!