Windows11下VSCode+PlatformIO编译ESP32串口代码时.o文件生成失败
问题:Windows11下PlatformIO编译ESP32-S3代码时无法生成.o目标文件
环境
- 系统:Windows 11
- 开发工具:VS Code + PlatformIO
- 开发板:ESP32-S3-DevKitC-1
报错信息
编译时出现多个类似如下的错误:
Fatal error: can't create .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_seal_curve25519xchacha20poly1305.o: No such file or directory
完整编译日志:
Assembler messages: Fatal error: can't create .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_seal_curve25519xchacha20poly1305.o: No such file or directory Compiling .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_scalarmult\curve25519\sandy2x\consts.o Compiling .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_scalarmult\curve25519\sandy2x\curve25519_sandy2x.o Compiling .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_invert.o Assembler messages: Fatal error: can't create .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_curve25519xchacha20poly1305.o: No such file or directory Compiling .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_mul.o Compiling .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_nsquare.o Compiling .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_scalarmult\curve25519\sandy2x\fe51_pack.o *** [.pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_seal_curve25519xchacha20poly1305.o] Error 1 *** [.pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_box\curve25519xchacha20poly1305\box_curve25519xchacha20poly1305.o] Error 1 Assembler messages: Fatal error: can't create .pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.o: No such file or directory *** [.pio\build\esp32-s3-devkitc-1\libsodium\libsodium\src\libsodium\crypto_pwhash\scryptsalsa208sha256\nosse\pwhash_scryptsalsa208sha256_nosse.o] Error 1
解决方案
- 以管理员身份运行VS Code:右键VS Code图标选择「以管理员身份运行」,重新编译。Windows普通权限可能无法创建深层嵌套目录。
- 清理构建缓存:
- 在VS Code的PlatformIO面板中找到当前项目,点击「Clean」按钮;
- 或手动删除项目目录下的
.pio/build文件夹后重新编译。
- 重建libsodium库依赖:
- 删除项目目录下
.pio/libdeps/esp32-s3-devkitc-1/libsodium文件夹; - 检查
platformio.ini中libsodium依赖声明是否正确,重新触发编译让PlatformIO重新下载并编译库文件。
- 删除项目目录下
- 缩短项目路径:Windows默认路径长度限制为260字符,当前报错路径已过深。将项目文件夹移动到更短路径下,比如从
D:\MyProjects\Embedded\ESP32\LongNameProject改为D:\ESP32Proj。 - 更新PlatformIO与ESP-IDF:打开PlatformIO主页,进入「Platforms」→「Updates」,更新ESP32平台和PlatformIO核心到最新版本,规避版本兼容性问题。
内容的提问来源于stack exchange,提问作者avy_hus
相关产品推荐
相关产品推荐

