stray '\357' なんとかエラー
2025.03.26
Arduinoで出てくるナゾのエラー。
ご存知の方は読まなくても構いません。

コンパイルすると、こんなエラーが出て中断。
stray '\357' in program

※円マークは実際にはバックスラッシュ。

私も初めて出くわした時には、わけがわからなくて困りました。

これは全角などの文字コードがソースに紛れ込んでいる為に起こります。


自分の経験で覚えているのは、Webサイトに掲載されたソースをコピー・ペーストしてきたときです。
簡単なプログラムだから通るだろうと思ったら、コンパイルが中断してしまう。
あれっおかしいなあ・・・

それで、いくらソースを隅々まで見てもわからない時があったのです。

全角スペースだったら、テキストエディタでソースを開いてみると(スペースも表示されるようにしておく)全角スペースを見つける事ができました。

先日経験した例では、それではありませんでした。

ソースの先頭から見ていこうとして、一番最初のところにカーソルを持ってきた。
カーソルキーを右へ移動しようとしても、なぜか引っかかったような感じでした。数回押すとやっと右へ1文字移動した。
ひょっとしてコレか!

見えない文字(コード)が挟まっていたわけですね。

その見えない文字相手に、DELキーを数回押して、それから改めてコンパイル・・・ようやく通りました。

こういうのってArduinoに限らず、自分の記憶ではかなり昔から有りました。

高校生の頃でした。COBOLのコンパイルが通らないのです。テキストエディタを開いてみてもどこにも誤りは無さそうです。
先生いわく、コントロールコード等が紛れ込んでいて、その見えない敵が悪さをしているということでした。
だから1行ずつ見ていって、あちこちでDELを押してみたりして挟まっている見えないコードを削除していったのです。
TABで区切られたところは、一旦TABを消して文字を詰めてから改めてTABを押し直す。
行末で改行を消し、次の行とくっつけてから改めて改行を押す。
こんなことを延々続けて、コンパイルしてみたら通ったのでした(笑)。

そういえばMSX-DOS2上のテキストエディタもおかしい時があったな。AKIDだったっけ。見えない文字が入っていると思って、カンでそのあたりを消してみたらアセンブルが通った。

- CafeLog -