出于研究目的,我正在尝试使用rwpi
重定位模型为我的 cortex-m4 微控制器构建图像。但是,在链接阶段,lld 向我抛出错误:
rust-lld: error: SBREL relocation to __sbss without static base
以下是重现此错误的简单方法。这遵循The Embedded Rust Book中的教程。
cargo install cargo-generate
安装一个方便的工具。cargo generate --git https://github.com/rust-embedded/cortex-m-quickstart
下载示例代码。cd
进入克隆目录。修改.cargo/config
. 添加"-C", "relocation-model=rwpi"
到rustflags
.- 运行
cargo build
。
中的示例代码main.rs
使用了cortex-m-rt
crate,它在编译期间将为链接器生成一个链接脚本。生成的链接脚本可以在./target/thumbv7m-none-eabi/debug/build/cortex-m-rt-xxxxxxxxxxxxxxxx/out/link.x
. 我想链接器缺少一些信息。我应该怎么做才能解决问题?