Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Unable to compile arduino as idf component #5319

Copy link
Copy link
Closed
@tsctrl

Description

@tsctrl
Issue body actions

Hardware:
Board: ESP32 Dev Module
Core Installation version: ESP-IDF v4.4-dev-1594-g1d7068e4b-dirty
IDE name: IDF component
Flash Frequency: 40Mhz
PSRAM enabled: no
Upload Speed: 115200
Computer OS: Windows 10

Description:
Unable to compile arduino as idf component.

I am doing library update from 4.2 to the current master 4.4 for idf and arduino but having issue with the arduino esp32 lib to compile with error:
I am able to replicate this issue using simple blink project with one additional idf components.
Arduino WiFi / Server need to be call from idf component cpp file.

Step to reproduce:

  1. create new blink project
  2. create components folder
  3. create new .cpp app_main file and replace .c file
  4. download the arduino-esp32
  5. copy the sdkconfig from tools folder
  6. create new component
  7. create new clinkage .cpp static file in components with header
  8. call arduino WiFi.begin / Server.begin in component static function
  9. call component static function from main function

Observation:
can compile and Serial.println works in main files, also work if added from component.
compile failed if i add WiFi.begin() in the component files.

This issue not happening on the 4.2 release

build the project with error as below:

Building in: ~\eclipse-workspace\blink\build
cmake --build . -- -v
[1/9] cmd.exe /C "cd /D ~\eclipse-workspace\blink\build\bootloader && ~\.espressif\tools\cmake\3.16.4\bin\cmake.exe --build ."
[1/1] cmd.exe /C "cd /D ~\eclipse-workspace\blink\build\bootloader\esp-idf\esptool_py && python C:/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 ~/eclipse-workspace/blink/build/bootloader/bootloader.bin"
Bootloader binary size 0x4300 bytes. 0x2d00 bytes (67%) free.
[2/7] ccache ~\.espressif\tools\xtensa-esp32-elf\esp-2020r3-8.4.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe  -DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -Iconfig -I../components/test-comp/include -IC:/esp-idf/components/newlib/platform_include -IC:/esp-idf/components/freertos/include -IC:/esp-idf/components/freertos/port/xtensa/include -IC:/esp-idf/components/esp_hw_support/include -IC:/esp-idf/components/esp_hw_support/include/soc -IC:/esp-idf/components/esp_hw_support/port/esp32/. -IC:/esp-idf/components/heap/include -IC:/esp-idf/components/log/include -IC:/esp-idf/components/lwip/include/apps -IC:/esp-idf/components/lwip/include/apps/sntp -IC:/esp-idf/components/lwip/lwip/src/include -IC:/esp-idf/components/lwip/port/esp32/include -IC:/esp-idf/components/lwip/port/esp32/include/arch -IC:/esp-idf/components/soc/include -IC:/esp-idf/components/soc/esp32/. -IC:/esp-idf/components/soc/esp32/include -IC:/esp-idf/components/hal/esp32/include -IC:/esp-idf/components/hal/include -IC:/esp-idf/components/esp_rom/include -IC:/esp-idf/components/esp_rom/esp32 -IC:/esp-idf/components/esp_common/include -IC:/esp-idf/components/esp_system/include -IC:/esp-idf/components/esp_system/port/soc -IC:/esp-idf/components/esp_system/port/public_compat -IC:/esp-idf/components/esp32/include -IC:/esp-idf/components/driver/include -IC:/esp-idf/components/driver/esp32/include -IC:/esp-idf/components/esp_pm/include -IC:/esp-idf/components/esp_ringbuf/include -IC:/esp-idf/components/efuse/include -IC:/esp-idf/components/efuse/esp32/include -IC:/esp-idf/components/xtensa/include -IC:/esp-idf/components/xtensa/esp32/include -IC:/esp-idf/components/vfs/include -IC:/esp-idf/components/esp_wifi/include -IC:/esp-idf/components/esp_event/include -IC:/esp-idf/components/esp_netif/include -IC:/esp-idf/components/esp_eth/include -IC:/esp-idf/components/tcpip_adapter/include -IC:/esp-idf/components/esp_phy/include -IC:/esp-idf/components/esp_phy/esp32/include -IC:/esp-idf/components/app_trace/include -IC:/esp-idf/components/esp_timer/include -I../components/arduino/variants/esp32 -I../components/arduino/cores/esp32 -I../components/arduino/libraries/ArduinoOTA/src -I../components/arduino/libraries/AsyncUDP/src -I../components/arduino/libraries/BLE/src -I../components/arduino/libraries/BluetoothSerial/src -I../components/arduino/libraries/DNSServer/src -I../components/arduino/libraries/EEPROM/src -I../components/arduino/libraries/ESP32/src -I../components/arduino/libraries/ESPmDNS/src -I../components/arduino/libraries/FFat/src -I../components/arduino/libraries/FS/src -I../components/arduino/libraries/HTTPClient/src -I../components/arduino/libraries/HTTPUpdate/src -I../components/arduino/libraries/LITTLEFS/src -I../components/arduino/libraries/NetBIOS/src -I../components/arduino/libraries/Preferences/src -I../components/arduino/libraries/RainMaker/src -I../components/arduino/libraries/SD_MMC/src -I../components/arduino/libraries/SD/src -I../components/arduino/libraries/SimpleBLE/src -I../components/arduino/libraries/SPIFFS/src -I../components/arduino/libraries/SPI/src -I../components/arduino/libraries/Ticker/src -I../components/arduino/libraries/Update/src -I../components/arduino/libraries/WebServer/src -I../components/arduino/libraries/WiFiClientSecure/src -I../components/arduino/libraries/WiFi/src -I../components/arduino/libraries/WiFiProv/src -I../components/arduino/libraries/Wire/src -IC:/esp-idf/components/spi_flash/include -IC:/esp-idf/components/mbedtls/port/include -IC:/esp-idf/components/mbedtls/mbedtls/include -IC:/esp-idf/components/mbedtls/esp_crt_bundle/include -IC:/esp-idf/components/mdns/include -IC:/esp-idf/components/console -IC:/esp-idf/components/esp_adc_cal/include -IC:/esp-idf/components/wifi_provisioning/include -IC:/esp-idf/components/protocomm/include/common -IC:/esp-idf/components/protocomm/include/security -IC:/esp-idf/components/protocomm/include/transports -IC:/esp-idf/components/bt/common/osi/include -IC:/esp-idf/components/bt/include/esp32/include -IC:/esp-idf/components/bt/host/bluedroid/api/include/api -IC:/esp-idf/components/nvs_flash/include -IC:/esp-idf/components/nghttp/port/include -IC:/esp-idf/components/nghttp/nghttp2/lib/includes -mlongcalls -Wno-frame-address   -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -Og -fstack-protector -fmacro-prefix-map=~/eclipse-workspace/blink=. -fmacro-prefix-map=C:/esp-idf=IDF -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -std=gnu++11 -fexceptions -fno-rtti -D_GNU_SOURCE -DIDF_VER=\"v4.4-dev-1594-g1d7068e4b-dirty\" -DESP_PLATFORM -DARDUINO=10812 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD=\"ESP32_DEV\" -DARDUINO_VARIANT=\"esp32\" -DESP32 -MD -MT esp-idf/test-comp/CMakeFiles/__idf_test-comp.dir/test-comp.cpp.obj -MF esp-idf\test-comp\CMakeFiles\__idf_test-comp.dir\test-comp.cpp.obj.d -o esp-idf/test-comp/CMakeFiles/__idf_test-comp.dir/test-comp.cpp.obj -c ../components/test-comp/test-comp.cpp
[3/7] cmd.exe /C "cd . && ~\.espressif\tools\cmake\3.16.4\bin\cmake.exe -E remove esp-idf\test-comp\libtest-comp.a && ~\.espressif\tools\xtensa-esp32-elf\esp-2020r3-8.4.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-ar.exe qc esp-idf\test-comp\libtest-comp.a  esp-idf/test-comp/CMakeFiles/__idf_test-comp.dir/test-comp.cpp.obj && ~\.espressif\tools\xtensa-esp32-elf\esp-2020r3-8.4.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-ranlib.exe esp-idf\test-comp\libtest-comp.a && cd ."
[4/7] cmd.exe /C "cd /D ~\eclipse-workspace\blink\build\esp-idf\esp32 && python C:/esp-idf/tools/ldgen/ldgen.py --config ~/eclipse-workspace/blink/sdkconfig --fragments C:/esp-idf/components/spi_flash/linker.lf	C:/esp-idf/components/esp_gdbstub/linker.lf	C:/esp-idf/components/espcoredump/linker.lf	C:/esp-idf/components/esp_phy/linker.lf	C:/esp-idf/components/esp_system/linker.lf	C:/esp-idf/components/esp_system/app.lf	C:/esp-idf/components/hal/linker.lf	C:/esp-idf/components/esp_event/linker.lf	C:/esp-idf/components/esp_wifi/linker.lf	C:/esp-idf/components/lwip/linker.lf	C:/esp-idf/components/log/linker.lf	C:/esp-idf/components/heap/linker.lf	C:/esp-idf/components/soc/linker.lf	C:/esp-idf/components/esp_hw_support/linker.lf	C:/esp-idf/components/esp_pm/linker.lf	C:/esp-idf/components/esp_ringbuf/linker.lf	C:/esp-idf/components/driver/linker.lf	C:/esp-idf/components/xtensa/linker.lf	C:/esp-idf/components/esp_common/common.lf	C:/esp-idf/components/esp_common/soc.lf	C:/esp-idf/components/freertos/linker.lf	C:/esp-idf/components/newlib/esp32-spiram-rom-functions-c.lf	C:/esp-idf/components/newlib/newlib.lf	C:/esp-idf/components/newlib/system_libs.lf	C:/esp-idf/components/app_trace/linker.lf	C:/esp-idf/components/bt/linker.lf --input C:/esp-idf/components/esp32/ld/esp32.project.ld.in --output ~/eclipse-workspace/blink/build/esp-idf/esp32/ld/esp32.project.ld --kconfig C:/esp-idf/Kconfig --env-file ~/eclipse-workspace/blink/build/config.env --libraries-file ~/eclipse-workspace/blink/build/ldgen_libraries --objdump ~/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-objdump.exe"
[5/7] cmd.exe /C "cd . && ~\.espressif\tools\xtensa-esp32-elf\esp-2020r3-8.4.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe  -mlongcalls -Wno-frame-address   @CMakeFiles\blink.elf.rsp  -o blink.elf  && cd ."
FAILED: blink.elf 
cmd.exe /C "cd . && ~\.espressif\tools\xtensa-esp32-elf\esp-2020r3-8.4.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe  -mlongcalls -Wno-frame-address   @CMakeFiles\blink.elf.rsp  -o blink.elf  && cd ."
~/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/test-comp/libtest-comp.a(test-comp.cpp.obj):(.literal._ZN8testcomp4funcEv+0xc): undefined reference to `WiFi'
~/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/test-comp/libtest-comp.a(test-comp.cpp.obj):(.literal._ZN8testcomp4funcEv+0x10): undefined reference to `WiFiSTAClass::begin(char const*, char const*, int, unsigned char const*, bool)'
~/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/test-comp/libtest-comp.a(test-comp.cpp.obj): in function `testcomp::func()':
~\eclipse-workspace\blink\build/../components/test-comp/test-comp.cpp:16: undefined reference to `WiFiSTAClass::begin(char const*, char const*, int, unsigned char const*, bool)'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
Build complete (4 errors, 0 warnings): ~\eclipse-workspace\blink\build
Total time taken to build the project: 16,746 ms

~some path detail are omitted from the logs

edit: some correction and formatting.

thanks!

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.