コードが複数のファイルにある場合、Arduino のコードをコンパイルする際に問題が発生します。私が過去に行ったことは、別のディレクトリにあるファイルとmake
そこにあるプロジェクトをスクリプトで連結することです。すべてが正しい順序で定義されていることを確認するなどの手間をかけずに、ビルド フォルダーから直接コンパイルできるようにしたいと考えています。
avrdude
Arduino IDE がウィンドウ マネージャーでうまく動作しないため、Linux コマンド ラインからコンパイルするために使用しています。複数のファイルで作成すると (適切な#include
ステートメントを使用すると、次の性質のエラーが発生しますが、すべてのメソッドと変数について.
./../lib/motor.ino:3:21: error: redefinition of ‘const long unsigned int MOVE_DELAY’
./../lib/motor.ino:3:21: error: ‘const long unsigned int MOVE_DELAY’ previously defined here
使用される唯一の他の場所MOVE_DELAY
はvoid loop()
関数内であり、そこで再定義されません。コードを 1 つのファイルに連結してmake
そのディレクトリで実行すると、コードは正常にコンパイルされますが、インクルードを含む別のファイルにある場合はコンパイルされません。