首页 > 代码库 > 【XS128】Link error L1822 symbol _FADD / _FSUB/ _FDIV/ _FMUL.....错误解决办法
【XS128】Link error L1822 symbol _FADD / _FSUB/ _FDIV/ _FMUL.....错误解决办法
这是飞思卡尔 XS128平台比较常见的LINK错误。
但是要解决起来也比较头疼。
很多人也许有这样的经历,整个工程目录是在别人做过的所有文件拷贝过来然后修改代码符合自己项目要求而产生的。这就发生了一个问题,
当初新建工程时的很多配置,比如预处理器配置,就会出现不适用当前项目。比如,本文所要提到的链接错误。
这个错误发生于:
原工程在新建的时候在某一步有与float相关的三个选项,如图:
如果你选择了none,那么不幸的是,如果在代码中加入关于float的四则运算等代码,就会出现该链接错误。
然而,新建一个带float的工程然后把代码文件都添加进去是不是就能解决该链接错误呢?答案是不一定的。
笔者做了一个测试,发现在Make的时候会死机,整个IDE就卡在这儿了。
当然,也不一定会出现这种情况,原因还是在原先的工程配置你并不清楚什么样的,或者其它原因也说不定。
那么,该如何解决LINK错误并通过编译呢?
先看下飞思卡尔官方的解释:
Basically for HC12 you have to remove the option -D__NO_FLOAT__ from compiler command line and add floating point format option (if needed) then replace ansi library file.
To retrieve the appropriate ansi library file check the file readme.txt from {Install}\lib\hc12c.
按照提示,第一步
将编译器命令进行修改:
按第二个按钮进入标准设置。
然后在命令行参数设置框里将-D__NO_FLOAT__命令删除:
原先使用的是ansixbi.lib库文件,此处对应改成ansixbf.lib文件(如下图),原文件移除并导入新文件,问题成功解决!