MPLAB не может объединить файлы.s и.c

Я использую MPLAB v4.0.5 на моем Mac с компилятором XC16 v1.33. У меня есть два файла, thom5409_disc2_main_v001.s и thom5409_disc2_main_v001.c .

Следующий код был предоставлен, чтобы помочь нам начать работу, и другие ученики в моем классе смогли получить точно такой же код для сборки без изменений, поэтому я считаю, что это проблема с моей версией MPLAB или компилятором.

В общем, мой ассемблерный код выглядит так: AssemblyCode

И мой код C выглядит так

Когда я пытаюсь его построить, я получаю следующие ошибки:

multiple definition of '_counter' а такжеmultiple definition of '_myAsmFunc'

Когда я удаляю строки в файле сборки, которые говорят .global _myAsmFunc а также.global _counter

Вместо этого я получаю следующие ошибки: undefined reference to '_main' а такжеundefined reference to '_myGlobalVar'

Я попытался отладить и найти решение для этого, но я не могу понять это. Как упоминалось ранее, другие одноклассники, использующие различные машины и версии как MPLAB, так и компилятора XC, смогли заставить его работать, поэтому я не верю, что это проблема кода, но, возможно, мне придется немного изменить код для MPLAB или компилятор?

1 ответ

Оба файла будут скомпилированы в thom5409_disc2_main_v001.o, Вам нужно переименовать один из файлов, чтобы файлы.c и.s компилировались в разные объектные файлы.

Другие вопросы по тегам