我在Mac上使用MPLAB v4.0.5,使用XC16 v1.33编译器。我有两个文件,thom5409_disc2_main_v001.s和thom5409_disc2_main_v001.c。
提供以下代码是为了帮助我们开始,我班上的其他学生能够获得完全相同的代码来构建而无需更改,因此我认为这是我的MPLAB版本或编译器的问题。
当我尝试构建它时,我收到以下错误:
multiple definition of '_counter'
和
multiple definition of '_myAsmFunc'
当我删除汇编文件中的行时说
.global _myAsmFunc
和
.global _counter
我得到以下错误:
undefined reference to '_main'
和
undefined reference to '_myGlobalVar'
我已经尝试过调试并找出解决方案,但我似乎无法弄明白。如前所述,使用各种机器和MPLAB和XC编译器版本的其他同学都可以使它工作,所以我不认为这是一个代码问题,但也许我必须稍微更改代码MPLAB还是编译器?
答案 0 :(得分:4)
两个文件都将编译为thom5409_disc2_main_v001.o
。你应该做的是重命名其中一个文件,以便将.c和.s文件编译成不同的目标文件。