我正在开发一个在嵌入式设备上使用 Rust 的项目,我正在尝试用 Rust 编写可以从 C 调用的函数。我在没有标准库的情况下编译项目,或多或少遵循本教程: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 的代码。
有谁知道这些错误的含义以及为什么链接器无法解决这些问题?谢谢!