问题描述
最近我不得不擦拭计算机,并在一切正常运行之后,该打开一些我以前正在研究的ESP32程序了,发现VSCode上的Platform IO将不再编译。通过编译器运行后,出现以下错误:
Compiling .pio\build\esp32dev\FrameworkArduino\stdlib_noniso.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\esp32dev\libFrameworkArduino.a
Linking .pio\build\esp32dev\firmware.elf
c:/users/lloyd/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find -lstdc++
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp32dev\firmware.elf] Error 1
=========================================================================== [Failed] Took 11.91 seconds ===========================================================================
The terminal process "C:\Users\lloyd\.platformio\penv\Scripts\platformio.exe 'run','--target','upload'" terminated with exit code: 1.
我开始调试并意识到即使使用最简单的程序也无法编译。我尝试了Arduino IDE,并且效果很好,还有一些使用CMaker的示例也很有效。但是,当我尝试上传以下代码时:
void setup()
{
// put your setup code here,to run once:
Serial.begin(115200);
}
void loop()
{
// put your main code here,to run repeatedly:
Serial.print("Hello World");
}
使用此platoformio.ini:
platform = espressif32
framework = arduino
board = esp32dev
monitor_speed = 115200
我得到相同的collect2.exe: error: ld returned 1 exit status
自从重置计算机以来,谁知道发生了什么或发生了什么变化?
解决方法
终于在 PlatformIo 论坛上找到了答案。在这里回答以防其他人像我一样先来看这里。
删除文件夹:
c:/users/<username>/.platformio/packages/toolchain-xtensa
并重新启动构建。