c - MPLAB 无法合并 .s 和 .c 文件

标签 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

当我尝试构建它时,出现以下错误:

'_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/

相关文章:

assembly - 16位汇编代码中的OFFSET是什么意思?

assembly - 物理闹钟的编程方式和内容

c - 为什么C语言中不存在数组赋值操作而存在结构体赋值?

在 C99 中收集没有浪费 malloc 的字符串

assembly - 将字符串转换为整数。使用 Nasm 的 x86 32 位汇编器

shell - shell VAR = $(command)处理可能的错误

javascript - 全局处理 jQuery AJAX 错误

javascript - 在JS中,如何捕获用户自定义函数异步调用抛出的错误?

检查输入和标准错误

C 编程 : Why printf Format Specifier %s Is Invalid For The Number "123"?