Erreur de compilation ESP32 Wrover Module (collect2.exe: error)

Bonjour,
Lorque que j'essaie de téléverser un programme, peu importe le programme j'ai le même message d'erreur qui apparait.
Quand je clic sur le bouton reboot j'ai l'ancien programme qui est dedans.
Pourriez vous m'aider ?
j'utilise un module ESP32 Wrover

Arduino : 1.8.13 (Windows 10), Carte : "ESP32 Wrover Module, Huge APP (3MB No OTA/1MB SPIFFS), QIO, 80MHz, 921600, None"

C:\Users\Commercial\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6/tools/sdk/lib\libesp32.a(cpu_start.o):(.literal.main_task+0x14): undefined reference to `app_main'

C:\Users\Commercial\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6/tools/sdk/lib\libesp32.a(cpu_start.o): In function `main_task':

/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/cpu_start.c:545: undefined reference to `app_main'

libraries\Wire\Wire.cpp.o:(.literal._ZN7TwoWire5flushEv+0x0): undefined reference to `i2cFlush'

libraries\Wire\Wire.cpp.o:(.literal._ZN7TwoWireD2Ev+0x4): undefined reference to `i2cRelease'

libraries\Wire\Wire.cpp.o: In function `TwoWire::flush()':

C:\Users\Commercial\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\Wire\src/Wire.cpp:379: undefined reference to `i2cFlush'

libraries\Wire\Wire.cpp.o: In function `TwoWire::~TwoWire()':

C:\Users\Commercial\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\Wire\src/Wire.cpp:379: undefined reference to `i2cRelease'

libraries\Wire\Wire.cpp.o: In function `_GLOBAL__sub_I__ZN7TwoWireC2Eh':

C:\Users\Commercial\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\cores\esp32/IPAddress.h:94: undefined reference to `IPAddress::IPAddress(unsigned char, unsigned char, unsigned char, unsigned char)'

libraries\Wire\Wire.cpp.o:(.rodata._ZTV7TwoWire[vtable for TwoWire]+0x2c): undefined reference to `Stream::readBytes(char*, unsigned int)'

libraries\Wire\Wire.cpp.o:(.rodata._ZTV7TwoWire[vtable for TwoWire]+0x34): undefined reference to `Stream::readString()'

sketch\bme280test.ino.cpp.o:(.literal.startup._GLOBAL__sub_I_bme+0x8): undefined reference to `IPAddress::IPAddress(unsigned char, unsigned char, unsigned char, unsigned char)'

sketch\bme280test.ino.cpp.o: In function `_GLOBAL__sub_I_bme':

C:\Users\Commercial\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\cores\esp32/IPAddress.h:94: undefined reference to `IPAddress::IPAddress(unsigned char, unsigned char, unsigned char, unsigned char)'

libraries\Adafruit_Unified_Sensor\Adafruit_Sensor.cpp.o: In function `_GLOBAL__sub_I__ZN15Adafruit_Sensor18printSensorDetailsEv':

C:\Users\Commercial\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\cores\esp32/IPAddress.h:94: undefined reference to `IPAddress::IPAddress(unsigned char, unsigned char, unsigned char, unsigned char)'

libraries\Adafruit_BME280_Library-master\Adafruit_BME280.cpp.o: In function `_GLOBAL__sub_I__ZN15Adafruit_BME280C2Ev':

C:\Users\Commercial\Documents\Arduino\libraries\Adafruit_BME280_Library-master/Adafruit_BME280.cpp:62: undefined reference to `IPAddress::IPAddress(unsigned char, unsigned char, unsigned char, unsigned char)'

collect2.exe: error: ld returned 1 exit status

exit status 1

Erreur de compilation pour la carte ESP32 Wrover Module




comment avez vous installé les outils pour ESP32 ?

Merci de changer le titre de ce fil de discussion ce n'est pas un problème de téléversement mais de compilation.

1 Like

En effet c'est un problème de compilation, lié à l'utilisation de l'I2C (on voit un capteur BME280 et la bibliothèque Wire).

3 cas possibles (voire plus...)

  1. ESP32 mal installé dans l'IDE : dans ce cas, voir ici
  2. Bibliothèques mal installées dans l'IDE, mais je n'y crois pas trop. Quelles sont les bibliothèques appelées par ton code ?
  3. Mauvais choix de la carte dans le menu : quelle carte as-tu sélectionnée dans le menu, et quelle carte utilises-tu (précisément) ?

Ni l'un ni l'autre, c'est un problème du linker (qui ne trouve pas les bibliothèques requises)