我在我的Mac上使用MPLABv4.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或编译器的代码?
发布于 2018-02-04 07:41:06
这两个文件都将编译为thom5409_disc2_main_v001.o。您应该做的是重命名其中一个文件,以便将.c和.s文件编译为不同的目标文件。
https://stackoverflow.com/questions/48603135
复制相似问题