ラベル scope の投稿を表示しています。 すべての投稿を表示
ラベル scope の投稿を表示しています。 すべての投稿を表示

2021年9月2日木曜日

Arduino 'XXX' was not declared in this scope

'XXX' was not declared in this scope

 

'XXX'が関数名であれば、その関数を実行した位置では、まだXXXは定義されていない。

XXX関数を実行箇所より前に持ってくる。
タブで管理しているなら左に来るようにタブ名に数値を入れるなどして調整する。
※タブ位置はすぐには反映されない。ファイルを開き直す必要あり。

2020年3月30日月曜日

Arduino IDE スコープエラー

M5Stack用のプログラムを整理していたら(タブに分けていたら)
以下の様なスコープエラーが出てきた。(一部抜粋)

error: variable or field '関数名' declared void
error: '引数名' was not declared in this scope
「WiFi.h」に対して複数のライブラリが見つかりました
「SD.h」に対して複数のライブラリが見つかりました

エラーに書かれている内容を元に調べてみても原因は見つからず、、
他の方の記事を見るとloop前に関数を持ってくるとか色々書いてあったけど、それで動いても気持ち悪いので仕方なくバックアップしておいた一つ前のファイルを元に調べてみました。
するとメインファイル(フォルダ名と同じinoファイル)に関数を一つも置いていないのが原因でした。
仕方ないのでメインファイルの末尾に適当な空の関数を入れたらエラーがすべて消えました。

void empty(){}

setup()やloop()を別のタブに移動させた時は注意しよ。。
プログラムを書く時は、まめに検証(コンパイル)ですね。