[STM8] STM8中加入库函数报错

[复制链接]
7572|14
 楼主| gjz175 发表于 2010-4-19 15:46 | 显示全部楼层 |阅读模式
引用了"math.h"中的开平方:sqrt()
在include中也添加了math.h文件。
但编译时报错,请大侠指教
香水城 发表于 2010-4-19 16:00 | 显示全部楼层
请说清楚编译时报的什么错?
 楼主| gjz175 发表于 2010-4-19 16:05 | 显示全部楼层
报错是:
#error clnk Debug\ledwritor.lkf:1 symbol _sqrt not defined (Debug\main.o )
The command: "clnk -m Debug\ledwritor.map -lD:\stm8\COSMIC\CXSTM8_16K\Lib  -o Debug\ledwritor.sm8 Debug\ledwritor.lkf " has failed, the returned value is: 1
exit code=1.

加入的头文件math.h里面只做了声明,没有其它都分。里面的函数在哪里我找不到。。
IJK 发表于 2010-4-19 17:29 | 显示全部楼层
报错是:
#error clnk Debug\ledwritor.lkf:1 symbol _sqrt not defined (Debug\main.o )
The command: "clnk -m Debug\ledwritor.map -lD:\stm8\COSMIC\CXSTM8_16K\Lib  -o Debug\ledwritor.sm8 Debug\ledwritor.l ...
gjz175 发表于 2010-4-19 16:05


问题出在链接的时候,应该在"Linker"那个页面进行设置。
需要链接类似于:libis.sm8、libm.sm8这样的库文件。
yybj 发表于 2010-4-19 21:17 | 显示全部楼层
应该是差链接文件
静默 发表于 2010-4-19 21:19 | 显示全部楼层
4楼正解,俺再添上脚。
LIB.GIF
txcy 发表于 2010-4-19 21:45 | 显示全部楼层
补充的很不错,呵呵,我都明白了
 楼主| gjz175 发表于 2010-4-20 12:43 | 显示全部楼层
我也是这样做了,勾了个float。编译过了,但还是不行的。试试赋值给变量,再用单步调试看看,变量的值不变。如6楼的图:lu32Tmp=25;
lu32Result=sqrtlu32Tmp();
在watch变看到变量不变。
更难懂的是如果这样做就能改变了:
lu32Tmp=25;
lu32Tmp++;
lu32Result=sqrtlu32Tmp();
lu32Result++;

在家试试看,我用的stvd是4.1.3
 楼主| gjz175 发表于 2010-4-20 12:49 | 显示全部楼层
lu32Tmp=25;
(在这用指令隔开)
lu32Result=sqrtlu32Tmp();

在两条指令中隔着一些指令,lu32Tmp=25;就能正常执行
dfsa 发表于 2010-4-20 20:14 | 显示全部楼层
是不是时间间隔太短,要延时
pkat 发表于 2010-4-20 21:20 | 显示全部楼层
lu32Tmp=25不就只是一个赋值语句吗
 楼主| gjz175 发表于 2010-4-25 12:32 | 显示全部楼层
就是赋值语句都失灵了,会是时间间隔太短,要延时吗??
 楼主| gjz175 发表于 2010-4-25 12:38 | 显示全部楼层
按6楼的方法还没解决问题啊。。。难道大家都不用库函数吗?
 楼主| gjz175 发表于 2010-5-4 15:05 | 显示全部楼层
真是郁闷,为什么这么基础的问题没有人给到一个满意的答案呢?难道大家从来都不用库函数?最后还是自己去写开方函数了。。。还是没弄出为什么调用不到
lo_xiaohua_ve 发表于 2010-5-8 11:06 | 显示全部楼层
把Libraries那里也指定好库的路径
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

45

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部