Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 未找到目标thumbv7em none eabihf的sin()、cos()、log10()(浮点)_Rust_Embedded_Cortex M - Fatal编程技术网

Rust 未找到目标thumbv7em none eabihf的sin()、cos()、log10()(浮点)

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

我使用的是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

如何解决这个问题?

在Rust 1.51(及以下版本)中,函数如
sin
cos
、或
log10
不是核心库(
core::
)的一部分,而是标准库(
std:
),因此它们不可用

一个实用的解决方案是使用板条箱
libm
,它为
no\u std
环境提供典型的数学函数

#![无标准]
fn main(){
设a=libm::cosf(2.0);
}
见:

  • libm板条箱:
  • 将数学函数移动到核心库的讨论

您想使用std功能,但要求不包含std。您的逻辑中存在明显的问题谢谢,我不知道这些问题只存在于
std
中,而不存在于
core
中。请在解决问题时创建一个自我回答。我认为,这个问题将对许多未来的读者有所帮助。