我在我的 Mac 上使用 MPLAB v4.0.5,带有 XC16 v1.33 编译器。我有两个文件,thom5409_disc2_main_v001.s 和 thom5409_disc2_main_v001.c。
提供以下代码是为了帮助我们入门,我类的其他学生能够获得完全相同的代码来构建而无需更改,因此我认为这是我的 MPLAB 版本或编译器的问题。
当我尝试构建它时,出现以下错误:
'_counter' 的多个定义
和
“_myAsmFunc”的多重定义
当我删除汇编文件中的行时
.global _myAsmFunc
和
.global_counter
我得到以下错误:
对“_main”的 undefined reference
和
对“_myGlobalVar”的 undefined reference
我试过调试并找出解决方案,但我似乎无法弄清楚。如前所述,其他使用不同机器和版本的 MPLAB 和 XC 编译器的同学都能够让它工作,所以我不认为这是代码问题,但也许我必须稍微更改代码MPLAB 还是编译器?
最佳答案
这两个文件都将编译为 thom5409_disc2_main_v001.o
。您应该做的是重命名其中一个文件,以便将 .c 和 .s 文件编译为不同的目标文件。
关于c - MPLAB 无法合并 .s 和 .c 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48603135/