[小ネタ] MacOSでQMKが"cannot find crtatmega32u4.o"でビルドできないときの対応
発端
キーボードを自作すると思い立って、パーツを買う前にqmkをMacに入れていた。
入れ方は
brew install qmk
さてそれから半年以上たって今回ようやくパーツを買って組み立てた。
さてキーマップをいじろう…と思って
make claw44:default:avrdude
してみたところ
QMK Firmware 0.9.50
Making claw44/rev1 with keymap default
avr-gcc (Homebrew AVR GCC 8.4.0) 8.4.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Linking: .build/claw44_rev1_default.elf [ERRORS]
|
| /usr/local/opt/avr-binutils/bin/avr-ld: cannot find crtatmega32u4.o: No such file or directory
| /usr/local/opt/avr-binutils/bin/avr-ld: cannot find -latmega32u4
| collect2: error: ld returned 1 exit status
|
make[1]: *** [.build/claw44_rev1_default.elf] Error 1
make: *** [claw44:default] Error 1
Make finished with errors
でビルドに失敗する…
対策
https://github.com/osx-cross/homebrew-avr/issues/182
にあった。要はavr-gccを完全に入れ直せばよい。
-
brew search osx-cross/avr
でどのavr関連クロスコンパイルツールが入っているか確認する。私の環境ではavr-binutils
avr-gcc
avr-gcc@7
avr-gcc@8
が入っていた。 brew uninstall avr-gcc@7
brew uninstall avr-gcc
-
brew uninstall avr-gcc@8
とすると
Error: Refusing to uninstall /usr/local/Cellar/avr-gcc@8/8.4.0
because it is required by qmk, which is currently installed.
You can override this and force removal with:
brew uninstall --ignore-dependencies avr-gcc@8
と警告されたので指示に従いbrew uninstall --ignore-dependencies avr-gcc@8
を実行
5. brew cleanup -s
-s
オプションはキャッシュのクリア。
6. brew install avr-gcc
を実行。しばらく時間がかかる。無事にインストールできれば完了。
これでQMKのビルドは通るようになった。
考察
対策後brew search osx-cross/avr
するとavr-binutils
とavr-gcc
だけインストールされておりavr-gcc@7
avr-gcc@8
は入っていなかった。
QMKを前にインストールしてから時間が半年以上経過し途中でOSをCatalinaにアップグレードしたためbrewもアップグレードされた。そこで何か失敗したのかもしれない。
Author And Source
この問題について([小ネタ] MacOSでQMKが"cannot find crtatmega32u4.o"でビルドできないときの対応), 我々は、より多くの情報をここで見つけました https://qiita.com/HirofumiTamori/items/280b889fb198e07b5826著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .