您的位置:首页 > 其它

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

2017-02-05 19:01 501 查看


 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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: