在Windows 10上为ESP 32的Rust项目构建esp-idf-sys时访问被拒绝

mgdq6dx1  于 2023-05-07  发布在  Windows
关注(0)|答案(1)|浏览(204)

我正在尝试设置这个Rust模板项目,以开始为ESP 32进行Rust开发:https://github.com/esp-rs/esp-idf-template
我已经安装了Rustup esp工具链,如下所述:https://github.com/esp-rs/rust-build
生成项目步骤中,我选择了这些参数:

  • 配置项目以使用Dev Containers = false
  • ESP-IDF本机构建版本= v4.4
  • Rust工具链= esp
  • STD支持= true
  • MCU = esp32

Build步骤中,我得到以下输出(显示第二次运行,第一次运行编译了一长串依赖项列表):

C:\Users\Me\boop\doop>cargo build
   Compiling esp-idf-sys v0.31.6
error: failed to run custom build command for `esp-idf-sys v0.31.6`

Caused by:
  process didn't exit successfully: `C:\Users\Me\boop\doop\target\debug\build\esp-idf-sys-cafd80a349bfdbb2\build-script-build` (exit code: 1)
  --- stdout
  cargo:rerun-if-env-changed=IDF_PATH
  cargo:rerun-if-env-changed=ESP_IDF_TOOLS_INSTALL_DIR
  cargo:rerun-if-env-changed=ESP_IDF_VERSION
  cargo:rerun-if-env-changed=ESP_IDF_REPOSITORY
  cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG_DEFAULTS
  cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG
  cargo:rerun-if-env-changed=MCU
  IDF_PYTHON_ENV_PATH=C:\Users\Me\boop\doop\.embuild\espressif\python_env\idf4.4_py3.10_env
  PATH=C:\Users\Me\boop\doop\.embuild\espressif\tools\esp32ulp-elf\2.28.51-esp-20191205\esp32ulp-elf-binutils\bin;C:\Users\Me\boop\doop\.embuild\espressif\tools\cmake\3.23.1\bin;C:\Users\Me\boop\doop\.embuild\espressif\tools\ninja\1.10.2\;C:\Users\Me\boop\doop\.embuild\espressif\python_env\idf4.4_py3.10_env\Scripts;C:\Users\Me\boop\doop\.embuild\espressif\esp-idf\release-v4.4\tools;%PATH%
  Current system platform: win64
  Skipping xtensa-esp32-elf@esp-2021r2-patch3-8.4.0 (already installed)
  Skipping cmake@3.23.1 (already installed)
  Skipping ninja@1.10.2 (already installed)
  Skipping esp32ulp-elf@2.28.51-esp-20191205 (already installed)
  IDF_PYTHON_ENV_PATH=C:\Users\Me\boop\doop\.embuild\espressif\python_env\idf4.4_py3.10_env
  PATH=C:\Users\Me\boop\doop\.embuild\espressif\tools\esp32ulp-elf\2.28.51-esp-20191205\esp32ulp-elf-binutils\bin;C:\Users\Me\boop\doop\.embuild\espressif\tools\cmake\3.23.1\bin;C:\Users\Me\boop\doop\.embuild\espressif\tools\ninja\1.10.2\;C:\Users\Me\boop\doop\.embuild\espressif\python_env\idf4.4_py3.10_env\Scripts;C:\Users\Me\boop\doop\.embuild\espressif\esp-idf\release-v4.4\tools;%PATH%

  --- stderr
  Using managed esp-idf repository: EspIdfRemote { repo_url: None, git_ref: Branch("release/v4.4") }
  fatal: No names found, cannot describe anything.
  Using esp-idf v4.4.1 at 'C:\Users\Me\boop\doop\.embuild\espressif\esp-idf\release-v4.4'
  fatal: No names found, cannot describe anything.
  Error: Access is denied. (os error 5)

当我选择ESP-IDF native build version = v4.3.2时,我得到了同样的错误,尽管没有fatal: No names found, cannot describe anything.消息。
我在尝试构建这个Rust ESP 32演示项目时遇到了相同的错误:https://github.com/ivmarkov/rust-esp32-std-demo
这是以管理员身份运行的。
在寻找解决方案的过程中,我发现:为什么os.rename有时会返回错误访问被拒绝python根据上面的答案,我在文件资源管理器中禁用了“在快速访问中显示常用文件夹”,但不幸的是构建错误没有改变。
什么访问被拒绝,什么可能导致拒绝,即使以管理员身份运行?其次,fatal: No names found, cannot describe anything.消息的原因和含义是什么?

vngu2lb8

vngu2lb81#

我今天一直在处理同样的问题。
它是由embuild依赖项中的更改引起的:https://github.com/esp-rs/embuild/commit/d8f8da228f1e1e6c105074d96617a8601092f633
尝试将权限数据写入打开的文件会导致'os错误5
我已经提交了一个PR项目:https://github.com/esp-rs/embuild/pull/56
现在合并了,货更新了,你应该会不错的!

相关问题