打印
[技术问题解答]

新手有关 include 的一个问题

[复制链接]
974|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
oxygensun|  楼主 | 2015-5-30 12:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位前辈,小弟公司最近上一个项目,客户指定Freescale芯片,硬着头皮上CodeWarrior,遇到一个很弱的问题请教:

我在main.c 中 分别 include 了 oled.c 和 MC9S12XS128.h

在oled.c 中,我为了使用一些IO地址,又引入了MC9S12XS128.h,结果编译时出现了
“L1818:Symbol 14- F6x8 duplicated in oled.c.o and main.c.o”的错误。

但是如果在oled.c中,去除对MC9S12XS128.h的引入,又会产生未声明变量的错误。

我调整了在main.c中的引入次序,也未见解决。之后到处百度了一下,发现大家说的都是很高大上的问题,完全没有我这种初级问题。。。

我的问题是:
1、在Code Warrior中,include是怎样的一个规则,我应该如何调整
2、各位有没有好一些的CodeWarrior的快速教程,给小弟推荐一个

谢谢各位前辈

相关帖子

沙发
luofeng2g| | 2015-5-30 13:05 | 只看该作者
去掉main中的MC9S12XS128.h

使用特权

评论回复
板凳
yangwenguan| | 2015-5-30 14:13 | 只看该作者
L1818:Symbol 14- F6x8 duplicated in oled.c.o and main.c.o
L1818:标识符14- F6x8在oled.c.o and main.c.o中重复出现

使用特权

评论回复
地板
youzikun| | 2015-5-30 14:57 | 只看该作者
这个问题很easy,出现“L1818:Symbol 14- F6x8 duplicated in oled.c.o and main.c.o”这个问题是因为有全局变量在调用时被重复定义了,楼主应该检查一下代码,把全局变量不要放在被多个源文件调用的头文件中。

使用特权

评论回复
5
949155525| | 2015-5-31 09:46 | 只看该作者
防止重复定义宏试一下

使用特权

评论回复
6
FSL_TICS_Jeremy| | 2015-6-1 09:19 | 只看该作者
上面的网友已经指出了问题的所在,你可以按照意见去做一下
同时你可以参考一下CW的使用指南
codewarrior使用指南1.part1.rar (3.81 MB)
codewarrior使用指南1.part2.rar (2.31 MB)

使用特权

评论回复
7
oxygensun|  楼主 | 2015-6-1 12:55 | 只看该作者
谢谢,问题已经解决,谢谢各位。

使用特权

评论回复
8
oxygensun|  楼主 | 2015-6-1 12:56 | 只看该作者
FSL_TICS_Jeremy 发表于 2015-6-1 09:19
上面的网友已经指出了问题的所在,你可以按照意见去做一下
同时你可以参考一下CW的使用指南

非常感谢

使用特权

评论回复
9
oxygensun|  楼主 | 2015-6-1 12:58 | 只看该作者
最终发现我在oled.c中,引入MC9S12XS128.h是不正确的,应该在oled.h中引入MC9S12XS128.h,再在oled.c中引入oled.h,这样就不会出现问题。

至于为什么要这样写,还不太明白。

使用特权

评论回复
10
FSL_TICS_Jeremy| | 2015-6-17 15:25 | 只看该作者
非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

0

粉丝