esp-at: Build failed when enabled ethernet

I’m trying to build a custom AT command firmware to enable Ethernet. I set it like this in menuconfig. Component Config->AT->AT Ethernet Support [*] If you do not check AT ethernet support, the build will succeed, but if you check it, the build will not be possible.

esp-at repository version:

~/esp-at$ git log -n 1 --format=%H
a1f3fc0c45d3935e99e52c44bd98b2eb5bd63c95

Build logs:

module_name WROVER-32
platform_name=ESP32,module_name=WROVER-32
Checking Python dependencies...
Python requirements from /home/ubuntu/esp-at/esp-idf/requirements.txt are satisfied.

...

[100%] Linking CXX executable esp-at.elf
/home/ubuntu/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld: ../components/at/lib/libesp32_at_core_silence.a(at_ethCmd.c.obj):(.literal.esp_at_eth_cmd_regist+0xc): undefined reference to `esp_at_get_eth_default_config'
/home/ubuntu/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/8.2.0/../../../../xtensa-esp32-elf/bin/ld: ../components/at/lib/libesp32_at_core_silence.a(at_ethCmd.c.obj): in function `esp_at_eth_cmd_regist':
(.text.esp_at_eth_cmd_regist+0x5): undefined reference to `esp_at_get_eth_default_config'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/esp-at.elf.dir/build.make:269: esp-at.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:1779: CMakeFiles/esp-at.elf.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
make failed with exit code 2

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 16 (2 by maintainers)

Most upvoted comments

@katodo @jitenshap Here is a workaround for AT ethernet compile. Please modify: https://github.com/espressif/esp-at/blob/master/components/at/CMakeLists.txt#L3 to

    bootloader_support app_update openssl wpa_supplicant spi_flash main)

That is, appending the libmain.a to at core require_components, so that libesp*at.a can link to implement of esp_at_get_eth_default_config, which defined in libmain.a.

At the same time, esp-at will simply and adjust the directory structure to facilitate reasonable code management.