RT-Thread(RTT)中调用数学库函数出现undefined reference to `asin‘问题解决

问题描述:

一、编译出现如下报错,对asin未定义声明引用

RT-Thread(RTT)中调用数学库函数出现undefined reference to `asin‘问题解决_第1张图片

二、在陀螺仪姿态解算这里用到了数学库中的函数,并且对math.h数学库也进行了包含,但依然报错。

RT-Thread(RTT)中调用数学库函数出现undefined reference to `asin‘问题解决_第2张图片
RT-Thread(RTT)中调用数学库函数出现undefined reference to `asin‘问题解决_第3张图片

问题解决:

一、出现这种问题的原因是没有对math.h数学库进行链接

二、点击打开构建配置

RT-Thread(RTT)中调用数学库函数出现undefined reference to `asin‘问题解决_第4张图片

三、添加链接数学库m,应用并关闭,

Libraries 是指链接器需要使用的外部库的设置。链接器在构建可执行文件时需要引用这些库,以便在运行时能够调用这些库中定义的函数和变量。

通常,这些外部库包括了标准的 C 库(如 libc)、数学库(如 libm)、线程库、设备驱动库等。

在 RT-Thread 中,根据项目需要选择所需的库,以便在链接时正确引用这些库中的函数和变量。当在代码中使用了库中定义的函数或变量时,链接器会在链接时检查并将这些函数和变量的地址引用到可执行文件中。

通过设置 Cross ARM C Linker 下的 Libraries,可以指定链接器在构建可执行文件时应该链接的外部库。这样就能确保程序能够正确地调用这些库中定义的函数和变量。

在 C/C++ 语言中,通常的数学函数库(比如数学计算相关的函数)会被命名为 "m"。

RT-Thread(RTT)中调用数学库函数出现undefined reference to `asin‘问题解决_第5张图片

四、此时再编译,成功通过

RT-Thread(RTT)中调用数学库函数出现undefined reference to `asin‘问题解决_第6张图片

你可能感兴趣的:(RTT,c语言,开发语言,学习,RTT,stm32,无人机)