MPLAB无法组合.s和.c文件

时间:2018-02-03 23:27:26

标签: c assembly error-handling mplab xc16

我在Mac上使用MPLAB v4.0.5,使用XC16 v1.33编译器。我有两个文件,thom5409_disc2_main_v001.s和thom5409_disc2_main_v001.c。

提供以下代码是为了帮助我们开始,我班上的其他学生能够获得完全相同的代码来构建而无需更改,因此我认为这是我的MPLAB版本或编译器的问题。

基本上,我的汇编代码如下所示: AssemblyCode

我的c代码看起来像这样 enter image description here

当我尝试构建它时,我收到以下错误:

multiple definition of '_counter'multiple definition of '_myAsmFunc'

当我删除汇编文件中的行时说 .global _myAsmFunc.global _counter

我得到以下错误: undefined reference to '_main'undefined reference to '_myGlobalVar'

我已经尝试过调试并找出解决方案,但我似乎无法弄明白。如前所述,使用各种机器和MPLAB和XC编译器版本的其他同学都可以使它工作,所以我不认为这是一个代码问题,但也许我必须稍微更改代码MPLAB还是编译器?

1 个答案:

答案 0 :(得分:4)

两个文件都将编译为thom5409_disc2_main_v001.o。你应该做的是重命名其中一个文件,以便将.c和.s文件编译成不同的目标文件。