概要
Mac用のArduinoIDEでスケッチ検証・コンパイルすると error: '\U0000feff' does not name a type が発生する原因について。
◎該当する行(1行目)を削除すれば解消されます。
さてとあるスケッチを検証・コンパイルすると、1行目で
motor_ctrl.cpp:1:1: error: '\U0000feff' does not name a type
1 | //--------------------------------------------------------------------------------
|
exit status 1
'\U0000feff' does not name a type
見た感じ、//-- とコメント行なので問題なさそうですが・・・
原因
Wikipediaより
バイト順マーク (バイトじゅんマーク、英: byte order mark) あるいはバイトオーダーマークとは、通称BOM(ボム)といわれるUnicodeの符号化形式で符号化したテキストの先頭につける数バイトのデータのことである。このデータを元にUnicodeで符号化されていることおよび符号化の種類の判別に使用する。
バイナリエディタでファイルを確認してみますと、先頭3バイトに EFBBBFが書き込まれており、UTF-8のテキストファイルとなっていました。
Mac版Arduinoではエラーとなってしまうので、該当行を削除すればエラーは解消されます。
ん?
error: '\U0000feff' does not name a type
UTF-8 BOM : 0xEF 0xBB 0xBF (EFBBBF)
エラー内に '\U0000feff' とありますがBOMはefbbbfなので何を拾ってきているのでしょうかね。