Rust 未找到目标thumbv7em none eabihf的sin()、cos()、log10()(浮点)
我使用的是Rust 1.51和这个最小的板条箱:Rust 未找到目标thumbv7em none eabihf的sin()、cos()、log10()(浮点),rust,embedded,cortex-m,Rust,Embedded,Cortex M,我使用的是Rust 1.51和这个最小的板条箱: #![无标准] fn main(){ 设a=2.0.cos(); } 我正在用货物检查--target thumbv7em none eabihf构建它,编译器抱怨说:在当前范围内没有为类型{float}找到名为“cos”的方法。同样适用于sin()和log10() 我发现并且希望上述消息适用于目标thumbv6m none-eabi或thumbv7em none-eabi,但不适用于具有FPU支持的thumbv7em none-eabihf
#![无标准]
fn main(){
设a=2.0.cos();
}
我正在用货物检查--target thumbv7em none eabihf
构建它,编译器抱怨说:在当前范围内没有为类型{float}找到名为“cos”的方法。同样适用于sin()
和log10()
我发现并且希望上述消息适用于目标thumbv6m none-eabi
或thumbv7em none-eabi
,但不适用于具有FPU支持的thumbv7em none-eabihf
如何解决这个问题?在Rust 1.51(及以下版本)中,函数如sin
、cos
、或log10
不是核心库(core::
)的一部分,而是标准库(std:
),因此它们不可用
一个实用的解决方案是使用板条箱libm
,它为no\u std
环境提供典型的数学函数
#![无标准]
fn main(){
设a=libm::cosf(2.0);
}
见:
- libm板条箱:
- 将数学函数移动到核心库的讨论
您想使用std功能,但要求不包含std。您的逻辑中存在明显的问题谢谢,我不知道这些问题只存在于std
中,而不存在于core
中。请在解决问题时创建一个自我回答。我认为,这个问题将对许多未来的读者有所帮助。