现在的位置: 首页 > 综合 > 正文

OPENAT中使用数学函数的小Trick

2013年02月12日 ⁄ 综合 ⁄ 共 988字 ⁄ 字号 评论关闭

       WMP100的开发,真是举步维艰,寸步前行。虽然越来越顺手,但还是不断碰到奇怪的问题。想是想不通的,百度一下,还是不知道的,Google里也冒不了几个泡。就说数学函数在OPEN AT中的使用,就让我很是郁闷了一阵。好在今天终于解决了,在这里留个记号。当然最好是WAVECOM能出一个关于OPENATFAQ,方面广大开发者参考,不要让这些小问题再成为我们的大麻烦。^_^

       要想在OPENAT的应用程序中使用如sqrt()cos()等数学函数,首先需要包括头文件math.h,但只包括该头文件,编译链接时依然会有警告信息,如下:

       appli.c: In function 'adl_main':

appli.c:88: warning: incompatible implicit declaration of built-in function 'sqrt'

    在网上找了很久,都说是要在链接选项中添加-lm,可就是不知道在什么地方加。开始以为是IDE的问题,于是从Eclipse换成VC6.0,但依然没解决。尝试修改mak文件,也不成功。最后终于在Wavecom的开发论坛中找到了05年的一个老帖子,其中介绍了解决办法。这里针对OPENAT OS6.10.05)做一个更新。

    首先在Open AT Project Wizard设置界面中的“wmnew script additional options”输入

      -inc "C:\OpenAT\IDE\GCC\4.0.1.2\arm-elf\lib",截图如下:

   

    然后打开工程目录下的mak文件(math.mak),找到如下所示代码,

#----------------------------------------------------------------

#   List of libraries real names to use for making binary file

#----------------------------------------------------------------

EXTERNAL_LIB_LIST = \

在后面添加如下代码,

C:/OpenAT/IDE/GCC/4.0.1.2/arm-elf/lib/thumb/interwork/libm.a   \

这样再编译,就不会有问题了。

抱歉!评论已关闭.