[讨论] 程序中有一个关于重复定义的问题,求解答

Jiaoeeer   2014-7-3 16:41 楼主
Error[e27]: Entry "Delay5ms" in module play ( F:\工程\Debug\Obj\play.r43 ) redefined in module playmain ( F:\工程\Debug\Obj\playmain.r43 )   


具体是我的play.c中有void Delay5ms(void),然后我的playmain.c里有调用play.c里的delay,编译通过,链接的时候提示上面那条错误,不懂如何解决,求解答。。。。

回复评论 (7)

你是不是在playmain.c中#inlcude"play.c"了?
点赞  2014-7-3 16:47
通常做法是还有个play.h文件,然后里面写上extern void Delay5ms(void);
然后在main.C里#include这样就可以了,一般模块化编程都是这么做的
出现这样的错误是不是你对外声明函数和函数本身格式不一致产生的
点赞  2014-7-3 16:58
搜索一下整个工程中,所有的Delay5ms.  play.c文件不要被别的文件包含.playmain.c里  添加
extern void Delay5ms();就可以了..
点赞  2014-7-3 21:00
引用: lcofjp 发表于 2014-7-3 16:47
你是不是在playmain.c中#inlcude"play.c"了?

诶,对。。我就是这么干的
点赞  2014-7-4 18:10
引用: sint27 发表于 2014-7-3 16:58
通常做法是还有个play.h文件,然后里面写上extern void Delay5ms(void);
然后在main.C里#include这样就 ...

这么试过了。。还是不可以啊

点赞  2014-7-4 18:17
引用: Jiaoeeer 发表于 2014-7-4 18:17
这么试过了。。还是不可以啊

不#include“play.c”就行了。
点赞  2014-7-4 18:33
引用: lcofjp 发表于 2014-7-4 18:33
不#include“play.c”就行了。

理解了。。。谢谢
点赞  2014-7-5 12:03
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复