0

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

提供以下代码是为了帮助我们入门,我班上的其他学生能够在不进行任何更改的情况下获得相同的确切代码来构建,所以我认为这是我的 MPLAB 版本或编译器的问题。

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

我的c代码看起来像这样 在此处输入图像描述

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

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

当我删除程序集文件中说 .global _myAsmFunc.global _counter

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

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

4

1 回答 1

4

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

于 2018-02-03T23:41:06.443 回答