单片机/MCU论坛
直播中

kmno4

12年用户 971经验值
私信 关注
[问答]

Math.h函数不起作用的原因?

我正在尝试使用一些需要math.h的 RADAR_SPEED_MONITOR ifx库 诸如 hypotf 和 sqrtf 之类的函数。 但是,编译器找不到这些函数的声明位置并引发此错误。
--------------------------------
来源/RDM/IFXBASE/LA.C:633:59:注意:在扩展 “SQRT”
633 时 | IFX_COMPLEX_SET_REAL(IFX_MAT_AT(A、i、i)、SQRT(总和));| ^~~ 来源/RDM/IFXBASE/Defines.H:122:14:

注意:包括 '' 或者提供 'sqrtf' 的声明
122 | #define SQRT sqrtf
------------------------------------------
我在文件中有 #include ,包含这些数学函数的 math.h 位于 C:InfineonToolsModusToolbox™tools_3.1gccArm®-none-eabiinclude 中 编译器二进制文件也所在的文件夹。
我试过在 Makefile 中将 m 添加到 LDLIBS,将-lm 添加到 LDFLAGS 和 CFLAGS 中。这没有解决问题。


回帖(1)

遇鱼余的小白

2024-1-18 17:02:34
要使用math.h中的函数,您需要在文件中包含

请确保在需要使用math.h函数的文件中添加以下代码行:
```c
#include
```

这将包含math.h头文件,并使函数可用。如果您已经包含了,但仍然无法使用函数,可能是因为在编译器中没有正确配置头文件路径。

如果您使用的是C++编译器,则应更改#include 为#include ,以便正确包含math.h的C++版本。

请注意,某些编译器可能对math.h头文件路径有特殊要求。如果您使用的是非标准的编译环境或特殊的编译选项,请查阅相关文档或搜索特定于您的编译器的math.h包含问题的解决方案。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分