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で作った超マイナーなプログラムです)。どんどんアップグレードするのではなく、安定板をしっかり提供して欲しいですね。