Arduino IDEでビルドエラー ~ Compilation error: exit status 1
ある時、突然にArduino IDEのビルドが通らなくなってしまいました。エラーは以下の通りです。
exit status 1
Compilation error: exit status 1
このエラーは、Arduino IDE、ボード、ライブラリの組み合わせで不整合がある場合に出るようです。確かに、他のプロジェクトを使っても同じエラーが出るので、環境の方に原因があることに間違いはありません。
しかしながら、何が原因かを手探りで探す必要がありました。
1.Arduino IDEのクリーンインストール
ネットで調べると、クリーンインストールが効果的だそうなので、やってみます。Arduino IDEのアンインストールだけでなく、ユーザフォルダにある「AppData/Local/Arduino15」の削除もやってみました。
クリーンインストールをする前に、作成したプロジェクトを退避しておいた方が良いです。また、ドキュメントフォルダにあるライブラリ「libraries」も削除した方が良いかもしれません。
2.使用ボードを変えてみる
クリーンインストールではうまくいかなかったので、使用しているボードについて見てみます。ここ最近はM5Stack系ばかり使っており、かつM5Stack公式のボードの方ではなく、「Espressif Systems」の方のボードを利用していました。それは、最近良く使うATOMS3 LITEが、公式ボードでうまくいかない場合が多かったためです。(ハードウェアエラーが出る場合が多い)
試しに、ボードをM5Stack公式の方に変更しました。そして、公式の方でも問題が起こらないプロジェクトでビルドしてみると、ビルドが問題なく通ります。つまり、Espressif Systemsのボードに問題がありそうです。
3.ボードのバージョンを下げてみる
Espressif Systemsのボードのバージョンを確認してみます。すると、3.00と新しいことが分かりました。そういえば最近、なぜかデバイス指定でATOM S3 LITEの再設定を求められました。そのタイミングでEspressif Systemsのボードがメジャーアップグレードされたようです。
試しに、Espressif Systemsのボードを2.0.17に変更すると、ビルドが通るようになりました。
Compilation error: exit status 1の原因はいろいろ
今回はCompilation error: exit status 1のエラーがEspressif Systemsのボードにありましたが、それ以外にも多種多様な原因で発生するものと思われます。今回も、実際には様々な原因を探っています。ボードのバージョンに気が付くまでには、実は時間がかかりました。
Android Studioもそうですが、頻繁にアップグレードが行われる開発環境を保つのは大変です。今は趣味レベルでプログラムしている私には荷が重すぎますね。15年以上前に作ったWindowsのプログラムは、今も現役で動きます(C++/CLIで作った超マイナーなプログラムです)。どんどんアップグレードするのではなく、安定板をしっかり提供して欲しいですね。