Debugging 未定义对'的引用;核心:fmt::write';链接独立可执行文件时

Debugging 未定义对'的引用;核心:fmt::write';链接独立可执行文件时,debugging,rust,compiler-errors,embedded,Debugging,Rust,Compiler Errors,Embedded,我正在尝试为一个结构实现core::fmt::Write,该结构是我为管理嵌入式项目中的文本缓冲区而编写的。我正在使用#[no_std],下面列出了我的实现 use core::fmt; impl fmt::Write for Cell { fn write_str(&mut self, s: &str) -> fmt::Result { for ch in s.chars() { self.put_char(ch)

我正在尝试为一个结构实现
core::fmt::Write
,该结构是我为管理嵌入式项目中的文本缓冲区而编写的。我正在使用
#[no_std]
,下面列出了我的实现

use core::fmt;
impl fmt::Write for Cell {
    fn write_str(&mut self, s: &str) -> fmt::Result {
        for ch in s.chars() {
            self.put_char(ch)

        }
            Ok(())
    }
}
单独使用时,
put_char
功能工作正常。我尝试在其他地方使用它,如下所示

use core::fmt::{Write, Result};
...
let mut buff = io::Cell::new();
write!(&mut buff, "abc");
然而,当我试图编译它时,在链接过程中会出现以下错误

ld: build/main.o: in function `core::fmt::Write::write_fmt':
/rustc/d32c320d7eee56706486fef6be778495303afe9e/library/core/src/fmt/mod.rs:182: undefined reference to `core::fmt::write'
ld: /rustc/d32c320d7eee56706486fef6be778495303afe9e/library/core/src/fmt/mod.rs:182: undefined reference to `core::fmt::write'
为什么我会收到这个。它似乎引用了内置库中的一个问题。我做错了什么导致了这个问题


我是否需要显式链接到核心库?我认为这是不必要的

您使用什么命令链接二进制文件?是的,所有的Rust项目都应该链接到
core
,+软浮点--emit obj生成一个对象文件,然后通过手动调用
ld
链接二进制文件,将其链接到其他各种对象文件中?是的,所有的Rust项目都应该链接到
core
,+软浮动——emit obj生成一个对象文件,然后手动调用
ld