编译报错
请教下大家,附件的项目编译报错,.\Obj\MCU.axf: Error: L6200E: Symbol MUTE_0 multiply defined (by mydspctrl.o and gui_menu.o).
.\Obj\MCU.axf: Error: L6200E: Symbol MUTE_1 multiply defined (by mydspctrl.o and gui_menu.o).
.\Obj\MCU.axf: Error: L6200E: Symbol MUTE_download multiply defined (by mydspctrl.o and gui_menu.o).
这应该是说MUTE_0 ,MUTE_1 重复定义,但我看了,这两就只是在D:Mute_ModesIC_1.h 有过定义,在别处并没有啊
麻烦大家帮看下,谢谢
你这个工程和你描述的错误都不一样,帮你编译了,只是有两个变量没有定义,没有重复定义的内容,另外就是你这个工程里面警告真多。慢慢修改吧
.\Sigmadsp\sequence\Mute_ModesIC_1.h(30): error:#20: identifier "MOD_MUTE1_ALG0_MUTEONOFF_ADDR_" is undefined
SIGMA_WRITE_REGISTER_BLOCK( MOD_MUTE1_ALG0_MUTEONOFF_ADDR_, 0x0000, 6, MUTE_0); /* MuteSWSlewAlg1mute */
.\Sigmadsp\sequence\Volume_ModesIC_1.h(28): error:#20: identifier "MOD_SINGLE1_ALG0_GAIN1940ALGNS1_ADDR_" is undefined
SIGMA_WRITE_REGISTER_BLOCK( MOD_SINGLE1_ALG0_GAIN1940ALGNS1_ADDR_, 0x0000, 6, VOLUME_1); /* Gain1940AlgNS1 */
App\MyDspCtrl.c: 1 warning, 2 errors
".\Obj\MCU.axf" - 2 Error(s), 13 Warning(s). 本帖最后由 toofree 于 2018-11-23 10:50 编辑
楼主不走心啊,附件没有更新,还是昨天的文件,出错信息与主楼不一致。
错是在.h文件中定义数组,这是不对的,.h中只能声明,不能定义。如果在.h中定义,那么其它文件中只能在一个地方包含此.h文件。如果在多个文件中包含此.h文件,那么出错是必然的。
你在mydspctrl.c和gui_menu.c中都包含过 #include "Mute_ModesIC_1.h",肯定出错。
#include的作用就是包含,相当于把被包含进的文件中内容,全部复制到本文件中。
.h文件里面最好要加上#ifndef---#define---#endif格式的宏,参考标准.h文件,可以避免重复定义出现问题 楼主有头文件被重复定义了。
页:
[1]