Ошибка компоновки при компиляции с использованием AVR-G CC на ОС Ma c - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь выполнить кросс-компиляцию программы для AVR, используя avr-g cc, которую я установил через macports. В терминале:

avr-gcc -O1   -DF_CPU=1000000UL -DBAUD=9600 -I.  -I/opt/local/avr/include/ -Wl,-Map,main.map -mmcu=atmega328p main.c -c

, что приводит к ошибкам:

clang: error: unknown argument: '-mgcc-isr'
clang: error: unknown argument: '-mno-skip-bug'

Приведенный выше кросс-компиляция использовалась, но после обновления до Catalina и переустановки avr-g cc что-то запутался. При поиске в Google я обнаружил, что в более новых версиях Clang, если Clang не распознает аргумент командной строки, возникает ошибка. В предложениях сказано использовать что-то вроде -Wno-error = g cc -isr. Таким образом, моя команда становится:

avr-gcc -O1  -Wno-error=gcc-isr -DF_CPU=1000000UL -DBAUD=9600 -I.  -I/opt/local/avr/include/ -Wl,-Map,main.map -mmcu=atmega328p main.c -c

, что приводит к:

cc1: error: ‘-Werror=gcc-isr’: no option -Wgcc-isr

Похоже, что-то запуталось между Clang и avr-g cc. Хотя я не уверен, почему Clang вызывают, когда я использую avr-g cc. Кто-нибудь знает, что здесь происходит?

1 Ответ

0 голосов
/ 20 марта 2020

Хорошо, я не уверен, почему clang вызывается с помощью avr-g cc, но мне удалось получить код для компиляции, удалив: (1) avr-g cc и (2) avr-binutils через macports, используя:

sudo port uninstall avr-binutils
sudo port uninstall avr-libc (I uninstalled this because it depends on avr-gcc)
sudo port uninstall avr-gcc

, затем я переустановил его, используя

sudo port install avr-gcc

, который спросил, хочу ли я установить avr-binutils. Затем я переустановил avr-lib c. Это прямые шаги. Я сделал ошибку, нажав «N», когда меня спросили, хочу ли я установить avr-binutils. Поэтому мне пришлось добавить:

sudo port clean avr-binutils

, чтобы очистить эту ошибку. Как только это было очищено, я мог следовать за вышеупомянутыми шагами. Опять же, это устранило ошибку, просто переустановив программное обеспечение кросс-компиляции, но я все еще думаю, что есть некоторое недопонимание исходной проблемы.

...