VSCode上的PlatformIO无法编译:collect2.exe:错误:ld返回1退出状态

问题描述

最近我不得不擦拭计算机,并在一切正常运行之后,该打开一些我以前正在研究的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

并重新启动构建。