[技术问题解答] 新手有关 include 的一个问题

[复制链接]
1493|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”这个问题是因为有全局变量在调用时被重复定义了,楼主应该检查一下代码,把全局变量不要放在被多个源文件调用的头文件中。
949155525 发表于 2015-5-31 09:46 来自手机 | 显示全部楼层
防止重复定义宏试一下
FSL_TICS_Jeremy 发表于 2015-6-1 09:19 | 显示全部楼层
上面的网友已经指出了问题的所在,你可以按照意见去做一下
同时你可以参考一下CW的使用指南
codewarrior使用指南1.part1.rar (3.81 MB, 下载次数: 7)
codewarrior使用指南1.part2.rar (2.31 MB, 下载次数: 7)
 楼主| oxygensun 发表于 2015-6-1 12:55 | 显示全部楼层
谢谢,问题已经解决,谢谢各位。
 楼主| oxygensun 发表于 2015-6-1 12:56 | 显示全部楼层
FSL_TICS_Jeremy 发表于 2015-6-1 09:19
上面的网友已经指出了问题的所在,你可以按照意见去做一下
同时你可以参考一下CW的使用指南

非常感谢
 楼主| oxygensun 发表于 2015-6-1 12:58 | 显示全部楼层
最终发现我在oled.c中,引入MC9S12XS128.h是不正确的,应该在oled.h中引入MC9S12XS128.h,再在oled.c中引入oled.h,这样就不会出现问题。

至于为什么要这样写,还不太明白。
FSL_TICS_Jeremy 发表于 2015-6-17 15:25 | 显示全部楼层
非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

0

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