2017年5月21日日曜日

バックアップのためにコピーした「*** - コピー.ino」で宣言重複エラー

なぜか変数、定数が重複してるよ!っていうエラーが消えなくてハマってました。
原因分かったので残しておきます。

NG事象①

ソース
#define LED_PWM_PIN 0     // 照明用PWMピン
エラー
LED_Light:4: error: expected unqualified-id before numeric constant
 #define LED_PWM_PIN 0     // 辣ァ譏守畑PWM繝斐Φ
                     ^
C:\Users\admin\Documents\arduino\LED_Light\LED_Light - 繧ウ繝斐?シ.ino:14:5: note: in expansion of macro 'LED_PWM_PIN'
意訳:
expected unqualified-id before numeric constant
数値は再定義できないよー。
('LED_PWM_PIN'が0で定義済みのため。「#define 0 0」で認識している。)

in expansion of macro 'LED_PWM_PIN'
LED_PWM_PINは定義済みだよー。

NG事象②

定数駄目なら、変数にしてみた。

ソース
int LED_PWM_PIN = 0;     // 照明用PWMピン

エラー
C:\Users\admin\Documents\arduino\LED_Light\LED_Light - 繧ウ繝斐?シ.ino:14:5: error: redefinition of 'int LED_PWM_PIN'
LED_Light:4: error: 'int LED_PWM_PIN' previously defined here
 int LED_PWM_PIN = 0;     // 辣ァ譏守畑PWM繝斐Φ
redefinition of 'int LED_PWM_PIN'

再定義だよー。


原因:

バックアップ用にコピーしたファイルもArduino IDEが読み込んで、一緒にコンパイルしていたため、変数重複のエラーが発生していた。
「 - コピー」が文字化けして、気づきにくい!

NG時のフォルダ構成:
LED_Light
├LED_Light.ino
└LED_Light - コピー.ino

対策:

フォルダ作成して、その中に入れれば解決しました。
LED_Light
├LED_Light.ino
└bk
 └LED_Light - コピー.ino