读书人

关于编译连接的有关问题

发布时间: 2012-02-15 12:09:44 作者: rapoo

关于编译连接的问题
我改的程序,编译没有问题,连接出现一大堆错误 错误提示如下:
Symbol TASK0_STACK multiply defined (by target.o and ISR.O)
Symbol TASK1_STACK multiply defined (by target.o and ISR.O)
Symbol TASK2_STACK multiply defined (by target.o and ISR.O)
Symbol TASK3_STACK multiply defined (by target.o and ISR.O)
Symbol TASK4_STACK multiply defined (by target.o and ISR.O)




TASK0~4都是程序中建立的任务。。。。我改的一大堆,不知道哪里改错了,
现在连接出错也找不到原因,请教各位大侠。。在此先谢过了。。

[解决办法]
这些变量被多重定义了,检查下target.cx和ISR.cx文件
[解决办法]
错误提示很明显啊。
标志重定义了.
[解决办法]
在你的target.c及ISR.c中重复定义了TASK0_STACK ,TASK1_STACK ....
可能的问题是这些变量是定义在.h 中的,且都是定义而非声明,
找到它们,在.h中用extern声明
另一个不是很合理的方法,加编译选项:
--allow-multiple-definition 就不会报这个错了



读书人网 >C语言

热点推荐