【ESP-IDF / VSCode】ビルドができないときはESP-IDF toolsのパスを確認しよう
はじめに
ESP-IDFは、公式がVSCodeの拡張機能を出しています。が、これの設定がなかなか難しい。
「ESP-IDFのコマンドプロンプトではビルドが通るけど、VSCodeだと何故かこんな感じでエラーが出てビルドができない」といった人向けです。
環境
- Windows 10
- ESP-IDF v4.2.1
- VSCode v1.56 (April 2021)
ESP-IDF拡張機能のログ
「エラーが出たときはログを見ろ」ってよく言われますね。VSCodeのESP-IDF拡張機能のログは次の場所にあるようです。Linux、Macは未確認です。
OS | 場所 |
---|---|
Windows | %USERPROFILE%\.vscode\extensions\espressif.esp-idf-extension-VERSION\esp_idf_vsc_ext.log |
Linux / MacOSX | $HOME/.vscode/extensions/espressif.esp-idf-extension-VERSION/esp_idf_vsc_ext.log |
私の場合は、Error: CMake or Ninja executables not found
とのことで、CMakeやNinjaが見つからないよって言われてました。
CMakeとかNinjaはどこにあるのか
コマンドプロンプトやPowershell版のESP-IDFを開くと、はじめになにか色々出ますよね。その中にこのような記述があります。
Adding ESP-IDF tools to PATH...
C:\Users\USERNAME\.espressif\tools\xtensa-esp32-elf\esp-2020r3-8.4.0\xtensa-esp32-elf\bin
C:\Users\USERNAME\.espressif\tools\xtensa-esp32s2-elf\esp-2020r3-8.4.0\xtensa-esp32s2-elf\bin
C:\Users\USERNAME\.espressif\tools\esp32ulp-elf\2.28.51-esp-20191205\esp32ulp-elf-binutils\bin
C:\Users\USERNAME\.espressif\tools\esp32s2ulp-elf\2.28.51-esp-20191205\esp32s2ulp-elf-binutils\bin
C:\Users\USERNAME\.espressif\tools\cmake\3.16.4\bin
C:\Users\USERNAME\.espressif\tools\openocd-esp32\v0.10.0-esp32-20200709\openocd-esp32\bin
C:\Users\USERNAME\.espressif\tools\ninja\1.10.0\
C:\Users\USERNAME\.espressif\tools\idf-exe\1.0.1\
C:\Users\USERNAME\.espressif\tools\ccache\3.7\
C:\Users\USERNAME\.espressif\tools\dfu-util\0.9\dfu-util-0.9-win64
C:\Users\USERNAME\.espressif\python_env\idf4.2_py3.8_env\Scripts
これらは、コマンドプロンプトを起動するたびに一時的に追加されるもののようで、VSCodeにこのパスが追加されていなかったためにエラーになったようです。
ということで、これらのパスをVSCode拡張機能に追加していきましょう。
VSCodeの拡張機能にパスを追加する
Ctrl
+ ,
で設定画面を開いて「esp-idf custom extra paths」で検索するか、
settings.jsonのidf.customExtraPaths
に、先のパスたちをセミコロン区切りで1行で追加していきます。
"idf.customExtraPaths": "C:\\Users\\USERNAME\\.espressif\\tools\\xtensa-esp32-elf\\esp-2020r3-8.4.0\\xtensa-esp32-elf\\bin;C:\\Users\\USERNAME\\.espressif\\tools\\xtensa-esp32s2-elf\\esp-2020r3-8.4.0\\xtensa-esp32s2-elf\\bin;C:\\Users\\USERNAME\\.espressif\\tools\\esp32ulp-elf\\2.28.51-esp-20191205\\esp32ulp-elf-binutils\\bin;C:\\Users\\USERNAME\\.espressif\\tools\\esp32s2ulp-elf\\2.28.51-esp-20191205\\esp32s2ulp-elf-binutils\\bin;C:\\Users\\USERNAME\\.espressif\\tools\\cmake\\3.16.4\\bin;C:\\Users\\USERNAME\\.espressif\\tools\\openocd-esp32\\v0.10.0-esp32-20200709\\openocd-esp32\\bin;C:\\Users\\USERNAME\\.espressif\\tools\\ninja\\1.10.0;C:\\Users\\USERNAME\\.espressif\\tools\\idf-exe\\1.0.1;C:\\Users\\USERNAME\\.espressif\\tools\\ccache\\3.7;C:\\Users\\USERNAME\\.espressif\\tools\\dfu-util\\0.9\\dfu-util-0.9-win64"
こんな感じで、結構長いです。Qiitaのコードブロックは行内の折返しはできないのかな……。
とりあえず、これを追加して、念の為VSCodeを開き直したら、ビルドが通るようになると思います。
終わりに
VSCode上で開発できるようになると色々便利そうですが、環境構築がなかなか難しいですね、これ。esp_idf_vsc_ext.log
でログが見られるというのが一番の収穫でした。
参考
Author And Source
この問題について(【ESP-IDF / VSCode】ビルドができないときはESP-IDF toolsのパスを確認しよう), 我々は、より多くの情報をここで見つけました https://qiita.com/gixim/items/3d9a219c257e254a5200著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .