查看: 3865|回复: 13

[分享] KDS使用sprintf函数后编译通不过

[复制链接]

该用户从未签到

10

主题

32

帖子

0

注册会员

Rank: 2

积分
128
最后登录
2015-7-10
发表于 2015-1-20 16:35:10 | 显示全部楼层 |阅读模式
要使用sprintf函数,并且有#include "stdio.h"
在stdio.h中看到有定义sprintf函数,但是编译报错。
KDS也没有提示是什么错误。
KDS报错.PNG
回复

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2015-1-21 10:21:28 | 显示全部楼层
请将你的工程中关于sprintf函数的代码贴出来,还有我想确认一下,该代码是来自官方的呢,还是你自己建立的?
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

32

帖子

0

注册会员

Rank: 2

积分
128
最后登录
2015-7-10
 楼主| 发表于 2015-1-21 10:29:29 | 显示全部楼层
FSL_TICS_ZP 发表于 2015-1-21 10:21
请将你的工程中关于sprintf函数的代码贴出来,还有我想确认一下,该代码是来自官方的呢,还是你自己建立的 ...

int _EXFUN(sprintf, (char *, const char *, ...)
               _ATTRIBUTE ((__format__ (__printf__, 2, 3))))


sprintf函数原型不是我自己建的。是H:\Freescale\KDS_2.0.0\toolchain\arm-none-eabi\include目录下stdio.h文件中的。
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

113

帖子

0

中级会员

Rank: 3Rank: 3

积分
326
最后登录
1970-1-1
发表于 2015-1-21 15:05:48 | 显示全部楼层
附件为KL46在KDS2.0.0环境下的一个spintrf的例子。
在我这边没有问题

kl46_sprintf_bare.zip

227.32 KB, 下载次数: 11, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

32

帖子

0

注册会员

Rank: 2

积分
128
最后登录
2015-7-10
 楼主| 发表于 2015-1-21 16:27:16 | 显示全部楼层
FSL-TICS-RICK 发表于 2015-1-21 15:05
附件为KL46在KDS2.0.0环境下的一个spintrf的例子。
在我这边没有问题

我编译了你的工程,能够编译通过。有两个warning.
并且open declaration时,提示:Could not find symbol 'sprintf' in index,而我的工程,在open declaration时,可以跳到stdio.h中去,并且指向了这个函数原型。
在我调用sprintf函数处,sprintf函数名呈紫色显示,而你的工程里面sprintf与其他字符颜色一致。
你的工程里面没有包含stdio.h头文件。我的工程里面无论是否包含stdio.h头文件均编译不过,KDS提示:1个错误:make:*** xxx.elf error 1  外加两个warning.
implicit declaration.PNG
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

32

帖子

0

注册会员

Rank: 2

积分
128
最后登录
2015-7-10
 楼主| 发表于 2015-1-23 12:20:13 | 显示全部楼层
FSL_TICS_ZP 发表于 2015-1-21 10:21
请将你的工程中关于sprintf函数的代码贴出来,还有我想确认一下,该代码是来自官方的呢,还是你自己建立的 ...

我又碰到了这个诡异的问题。这次没用sprintf,依然出现了编译不过的情况,最要命的是没有提示哪里出错。由于这次代码改动较多。我查不出是哪里的问题。
我确信这是KDS的BUG。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

32

帖子

0

注册会员

Rank: 2

积分
128
最后登录
2015-7-10
 楼主| 发表于 2015-1-23 12:21:35 | 显示全部楼层
FSL_TICS_ZP 发表于 2015-1-21 10:21
请将你的工程中关于sprintf函数的代码贴出来,还有我想确认一下,该代码是来自官方的呢,还是你自己建立的 ...

如果有必要,我可以把我的工程发给你,你编译试试看。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

32

帖子

0

注册会员

Rank: 2

积分
128
最后登录
2015-7-10
 楼主| 发表于 2015-1-23 14:57:13 | 显示全部楼层
这个问题貌似是头文件被重复包含所引起的。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

32

帖子

0

注册会员

Rank: 2

积分
128
最后登录
2015-7-10
 楼主| 发表于 2015-1-26 16:43:18 | 显示全部楼层
FSL_TICS_ZP 发表于 2015-1-21 10:21
请将你的工程中关于sprintf函数的代码贴出来,还有我想确认一下,该代码是来自官方的呢,还是你自己建立的 ...

这个问题又如幽灵般出现了。不知道是怎么出现的,没有任何提示。真正做产品的时候是不可能用这种开发环境的。
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

32

帖子

0

注册会员

Rank: 2

积分
128
最后登录
2015-7-10
 楼主| 发表于 2015-1-26 17:30:52 | 显示全部楼层
当选择Release编译时提示:
cannot open linker script file MKL25Z128xxx4_flash.ld: No such file or directory       
make: *** [E_Clock_V3.0.elf] Error 1
       
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 10:24 , Processed in 0.108515 second(s), 29 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表