【问题标题】:MPLAB unable to combine .s and .c filesMPLAB 无法合并 .s 和 .c 文件
【发布时间】:2018-02-03 23:27:26
【问题描述】:

我在我的 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 还是编译器?

【问题讨论】:

  • 请以文本形式发布代码。我的编译器没有OCR 能力,我也不能复制/粘贴到文本编辑器

标签: c assembly error-handling mplab xc16


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 2013-12-16
    • 2017-09-09
    • 2023-03-10
    • 2013-12-09
    • 2021-07-07
    相关资源
    最近更新 更多