Xilinx SDK 编译包含有sin, cos, or tan 等数学函数时如何成功编译

 http://www.360doc.com/content/16/0406/19/18252487_548394259.shtml


Xilinx SDK 编译包含有sin, cos, or tan 等数学函...

2016-04-06   mzsm   文章来源  阅 161  转 1


问题描述:

在Vivado SDK中,使用了math函数库中的三角函数,如下所示。虽然在头部包含了“math.h”头文件,编译时SDK工具仍然提示找不到sin函数。


                            

 

Note:其实不管是Vivado还是ISE,哪个版本的SDK使用者都可能会碰到类似的问题,有兴趣的读者可以亲自试验下。

 

那么这到底是什么问题呢?

其实是GCC工具链的库函数默认路径的问题。从网上搜了下,gcc的sin函数是定义在libm.so里面了。用-l选项定义指定的路径。不填写的话默认是/lib和/usr/lib内。因为linux下所有的函数库都是以lib开头的。所以除去头和尾,那么m就是代表libm.so(m是库名,libm.so是库文件名)在使用“-l”参数时,通常的习惯是除去“lib”函数库头和后面的版本号,使用库名和参数“-l”连接,形成“-lm”。于是,我们需要在gcc找不到库时,可是使用“-l”直接给定库名。

虽然我们可能是裸跑的程序,但也是适用上述解释的。

 

解决办法:

需要在C/C++Build Settings中加上'm'选项:


 

参考:AR#52971  14.4 - SDK - ARM Compiler isfailing with applications containing sin, cos, tan functions in SDK


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值