嵌入式技术论坛
直播中

申换换

7年用户 1519经验值
私信 关注
[问答]

rtthread studio中math库如何使用?

各位大神好:
最近使用到了反正弦函数:asin,把math.h头文件包含到源文件中。但是编译时提示:undefined reference to 'asin' ,百度了一圈,有的说是要在连接器后面加 -lm参数。
我尝试添加这个后缀,也不知道是错了,还是有其他原因。问题依旧不能解决。盼望大神给我解惑。谢谢了。

回帖(2)

王飞云

2023-9-8 17:39:02
inux下 ,如果程序包含 math.h ,在gcc时必须加入 lm 例如:gcc -o main.o main.c -lm
但是在eclipse下面 编译,项目回自动生成makefile ,无论如何手动修改makefile,在编译的时候也会被eclipse修改成原来的样子。
这个lm的设置方法如下:

选择"project"> "propertise"> "C/C++ Build"> C/C++ Build的下拉菜单
"Settings"选项> Settings的"Tool Settings"选项卡> Tool Settings选项卡下的,
"GCC CLlinker"选项> GCC C Linker选项下的"Libraries"选项

这时,只需要在“Libraries(-l)“里面添加一个”m“,这时eclipse就会在它自动生存的makefile里面生成gcc的-lm参数,这时make项目的时候 ,math.h库里面的数学函数就不会提示找不到了。
举报

发生的方式

2023-9-21 16:22:56
在使用math库中的函数时,需要在连接时链接上libm库,即需要在编译命令中添加-lm参数。在RT-Thread Studio中可以通过以下步骤添加:

1. 右键点击工程,在弹出的菜单中选择Properties;
2. 在弹出的窗口中选择C/C++ Build->Settings;
3. 在窗口的左侧菜单中选择Tool Settings->GCC Linker->Miscellaneous;
4. 在右侧的“Linker flags”中添加-lm,并保存。

然后重新编译工程就可以正常链接math库并调用其中的函数了。
举报

更多回帖

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