最近有人问我在freescale codewarrior for coldfire中试用sin,sqrt之类的函数的时候总是报link error,称找不到这些函数的原型。这个问题的原因是CW默认包含的MSL C库是没有math支持的,如果你需要用到这些函数,需要更换MSL C库,方法是:
在CW中add files加上C_4i_CF_MSL.a,这个库文件在CW安装目录\ColdFire_Support\msl\MSL_C\MSL_ColdFire\Lib
这种方法有个缺陷就是会大大增加生成的目标代码的尺寸,因为这个库是很大的,如果你仅仅需要试用math库中的少数几个函数,那么可以有变通的办法大大减小对目标代码尺寸的影响。方法是直接拷贝MSL库中你需要的math函数的源代码文件到你的工程,把里面的那些条件编译的选项给去掉,再把拷贝出来的文件加到你的工程,编译即可。
文章评论(0条评论)
登录后参与讨论