💥
[memo] PlatformIO for VS Code をWindowsで使うメモ
まえがき
- Linuxで開発していたが諸事情で環境をWindowsにしたときのメモ
- すべての記述は 2023/01/12現在
ハマったポイント
ビルドが通らない
症状:
ビルド中に UnicodeDecodeError: 'cp932' codec can't decode byte 0x83 in position 568: illegal multibyte sequence:
がでてビルドに失敗する。
解決策:
環境変数に PYTHONUTF8=1
を追加する。方法はシステム環境変数に追加してもいいし、platformioを呼び出すときに設定してもいい(方法は色々あると思うので)
LinuxでビルドできたのにWindowsではできない
症状:
タイトルの通り。コンパイルエラーになった
解決策:
独自に wifi.h
というヘッダファイルを作っていたが、これがESP32標準のWire.h
と同一視されてしまっていた。(Windowsはファイル名の大文字小文字を区別しないため)
回避するには、ディレクトリ単位で大文字小文字を区別するようにするか、ファイル名が重複しないように変更する必要がある。
git cloneしただけなのに差分が表示される
症状:
git clone しただけの何も変更していない状態なのに、変更があると表示される。diffをとっても何も変更されていない。
解決策:
Windows以外の環境で chmod +x した場合、git上でも記憶されるが、Windowsには実行可能属性がないのでchmod +x されていないものとして扱うが、それをdiffとして検知はする。
git update-index --add --chmod=+x filename
とすることでセットは可能な模様。ただ、もしWindows機が混ざるのであれば実行可能属性に頼らないほうが良いかもしれない。不意に属性が外れてしまった時にトラブりそうな気がする。
Discussion