Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors while linking async example on PlatformIO #235

Closed
pinomarcelo opened this issue Nov 17, 2024 · 6 comments
Closed

Errors while linking async example on PlatformIO #235

pinomarcelo opened this issue Nov 17, 2024 · 6 comments

Comments

@pinomarcelo
Copy link

Sketch: AsyncDemo.ino
All recomendations where applied.

platformio.ini
[env:esp32doit-devkit-v1]
;[env:nodemcu-32s]
platform = espressif32
board = esp32doit-devkit-v1
framework = arduino
monitor_speed = 115200
lib_compat_mode = strict
lib_deps =
esphome/ESPAsyncWebServer-esphome@^3.3.0
ayushsharma82/ElegantOTA@^3.1.6
build_flags=-DELEGANTOTA_USE_ASYNC_WEBSERVER=1

Trying to compile sketch i get this:

Executing task in folder Prueba OTA ESP32: C:\Users\pinom.platformio\penv\Scripts\platformio.exe run

Processing esp32doit-devkit-v1 (platform: espressif32; board: esp32doit-devkit-v1; framework: arduino)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32doit-devkit-v1.html
PLATFORM: Espressif 32 (6.9.0) > DOIT ESP32 DEVKIT V1
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 @ 3.20017.0 (2.0.17)
  • tool-esptoolpy @ 1.40501.0 (4.5.1)
  • toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ strict
    Found 38 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- ESPAsyncWebServer-esphome @ 3.3.0
    |-- ElegantOTA @ 3.1.6
    |-- ESPAsyncWebServer @ 3.3.22
    |-- WiFi @ 2.0.0
    Building in release mode
    Linking .pio\build\esp32doit-devkit-v1\firmware.elf
    c:/users/pinom/.platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: .pio\build\esp32doit-devkit-v1\lib0c8\libESPAsyncWebServer.a(WebRequest.cpp.o): in function AsyncWebServerRequest::_onPoll()': E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer/src/WebRequest.cpp:155: multiple definition of AsyncWebServerRequest::_onPoll()'; .pio\build\esp32doit-devkit-v1\lib9c8\libESPAsyncWebServer-esphome.a(WebRequest.cpp.o):E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer-esphome/src/WebRequest.cpp:190: first defined here
    c:/users/pinom/.platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: .pio\build\esp32doit-devkit-v1\lib0c8\libESPAsyncWebServer.a(WebRequest.cpp.o): in function AsyncWebServerRequest::_onAck(unsigned int, unsigned int)': E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer/src/WebRequest.cpp:170: multiple definition of AsyncWebServerRequest::_onAck(unsigned int, unsigned int)'; .pio\build\esp32doit-devkit-v1\lib9c8\libESPAsyncWebServer-esphome.a(WebRequest.cpp.o):E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer-esphome/src/WebRequest.cpp:197: first defined here
    c:/users/pinom/.platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: .pio\build\esp32doit-devkit-v1\lib0c8\libESPAsyncWebServer.a(WebRequest.cpp.o): in function AsyncWebServerRequest::_onError(signed char)': E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer/src/WebRequest.cpp:185: multiple definition of AsyncWebServerRequest::_onError(signed char)';
    .pio\build\esp32doit-devkit-v1\lib9c8\libESPAsyncWebServer-esphome.a(WebRequest.cpp.o):E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer-esphome/src/WebRequest.cpp:210: first defined here
    c:/users/pinom/.platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: .pio\build\esp32doit-devkit-v1\lib0c8\libESPAsyncWebServer.a(WebRequest.cpp.o): in function AsyncWebServerRequest::_onTimeout(unsigned int)': E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer/src/WebRequest.cpp:189: multiple definition of AsyncWebServerRequest::_onTimeout(unsigned int)'; .pio\build\esp32doit-devkit-v1\lib9c8\libESPAsyncWebServer-esphome.a(WebRequest.cpp.o):E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer-esphome/src/WebRequest.cpp:214: first defined here
    c:/users/pinom/.platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: .pio\build\esp32doit-devkit-v1\lib0c8\libESPAsyncWebServer.a(WebRequest.cpp.o): in function `AsyncWebServerRequest::onDisconnect(std::function<void ()>)':
    ......
    ......
    ElegantOTA issues.txt

E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer/src/WebAuthentication.cpp:118: multiple definition of generateDigestHash(char const*, char const*, char const*)'; .pio\build\esp32doit-devkit-v1\lib9c8\libESPAsyncWebServer-esphome.a(WebAuthentication.cpp.o):E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer-esphome/src/WebAuthentication.cpp:112: first defined here c:/users/pinom/.platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: .pio\build\esp32doit-devkit-v1\lib0c8\libESPAsyncWebServer.a(WebAuthentication.cpp.o): in function checkDigestAuthentication(char const*, char const*, char const*, char const*, char const*, bool, char const*, char const*, char const*)':
E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer/src/WebAuthentication.cpp:141: multiple definition of `checkDigestAuthentication(char const*, char const*, char const*, char const*, char const*, bool, char const*, char const*, char const*)'; .pio\build\esp32doit-devkit-v1\lib9c8\libESPAsyncWebServer-esphome.a(WebAuthentication.cpp.o):E:\Descargas\Google Drive\DESARROLLO\PRUEBAS\Prueba OTA ESP32/.pio/libdeps/esp32doit-devkit-v1/ESPAsyncWebServer-esphome/src/WebAuthentication.cpp:144: first defined here
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp32doit-devkit-v1\firmware.elf] Error 1
========================================================================================= [FAILED] Took 15.46 seconds =========================================================================================

  • The terminal process "C:\Users\pinom.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.
@euphi
Copy link

euphi commented Nov 25, 2024

Solution: Stick to the last version of EleganOTA before they forked the Async Libraries. So just change your platformio.ini to

lib_deps=
        ElegantOTA@=3.1.1

@Eilgnaw
Copy link

Eilgnaw commented Dec 1, 2024

try use ESPAsyncWebServer

@pinomarcelo
Copy link
Author

@euphi thanks a lot! It is working now.

Copy link

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the Stale label Jan 12, 2025
@BenjaminDerProgrammierer

It isn't a real solution to just downgrade the version, someone should fix it... Although it works...

Just commenting to remove Stale status

@github-actions github-actions bot removed the Stale label Jan 13, 2025
@ayushsharma82
Copy link
Owner

@pinomarcelo ‘s dependency graphs shows mixing of AsyncWebServer dependencies.

Dependency Graph
|-- ESPAsyncWebServer-esphome @ 3.3.0
|-- ElegantOTA @ 3.1.6
|-- ESPAsyncWebServer @ 3.3.22
|-- WiFi @ 2.0.0

  1. Make sure there is not an existing AsyncWebServer dependency installed in your project if you are using PIO. PlatformIO will automatically install recommended dependencies required by ElegantOTA v3.
  2. AsyncWebServer-esphome is no longer recommended. We have switched to a well maintained fork.
  3. Clear your .pio/libdeps folder time to time after you have done changes in your platform.ini.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants