Clang 在Mac OS上使用AVR-GCC编译时引发的叮当声错误

Clang 在Mac OS上使用AVR-GCC编译时引发的叮当声错误,clang,avr-gcc,Clang,Avr Gcc,我正在尝试使用通过macports安装的AVR gcc为AVR交叉编译一个程序。在终端中: 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:

我正在尝试使用通过macports安装的AVR gcc为AVR交叉编译一个程序。在终端中:

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 gcc之后,有些事情变得一团糟。搜索google我发现,对于较新版本的Clang,如果Clang无法识别命令行参数,那么它将引发一个错误。建议使用类似-Wno error=gcc 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 gcc之间有些事情搞砸了。虽然我不知道为什么在使用AVRCC时会调用Clang。有人知道这里发生了什么吗

好的,我不知道为什么会用avr gcc调用clang,但我确实通过卸载(1)avr gcc和(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 libc。这些是直接的步骤。我犯了一个错误,当它问我是否要安装avr binutils时,我点击了“N”。因此,我必须补充:

sudo port clean avr-binutils
为了消除这个错误。一旦被清除,我可以按照上面的步骤。再次强调,这通过重新安装交叉编译软件消除了错误,但我仍然认为对原始问题存在一些潜在的误解