0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Arduinoのコンパイルエラー error: '\U0000feff' does not name a type について

Last updated at Posted at 2022-04-23

概要

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

こんなエラーが発生しました。
U0000feff' does not name a type.png

見た感じ、//-- とコメント行なので問題なさそうですが・・・

原因

Wikipediaより
バイト順マーク (バイトじゅんマーク、英: byte order mark) あるいはバイトオーダーマークとは、通称BOM(ボム)といわれるUnicodeの符号化形式で符号化したテキストの先頭につける数バイトのデータのことである。このデータを元にUnicodeで符号化されていることおよび符号化の種類の判別に使用する。

バイナリエディタでファイルを確認してみますと、先頭3バイトに EFBBBFが書き込まれており、UTF-8のテキストファイルとなっていました。
Mac版Arduinoではエラーとなってしまうので、該当行を削除すればエラーは解消されます。
bom.png

ん?

error: '\U0000feff' does not name a type
UTF-8 BOM : 0xEF 0xBB 0xBF  (EFBBBF)
エラー内に '\U0000feff' とありますがBOMはefbbbfなので何を拾ってきているのでしょうかね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?