Hi all,
I’m getting error when compile source code with mqtt_client API. I’m writing a MQTT init function as below. But when Compiling, it got failed with log undefined reference to `mbedtls_ssl_xxxx’
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_mbedtls_read+0x0): undefined reference to `mbedtls_ssl_read'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_mbedtls_write+0x0): undefined reference to `mbedtls_ssl_write'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.set_ca_cert+0x0): undefined reference to `mbedtls_ssl_conf_authmode'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.set_ca_cert+0x4): undefined reference to `mbedtls_ssl_conf_ca_chain'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.set_pki_context+0xc): undefined reference to `mbedtls_ssl_conf_own_cert'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_mbedtls_verify_certificate+0x0): undefined reference to `mbedtls_ssl_get_verify_result'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_mbedtls_handshake+0x0): undefined reference to `mbedtls_ssl_handshake'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_mbedtls_get_bytes_avail+0x0): undefined reference to `mbedtls_ssl_get_bytes_avail'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_mbedtls_cleanup+0x4): undefined reference to `mbedtls_ssl_config_free'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_mbedtls_cleanup+0x8): undefined reference to `mbedtls_ssl_free'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.set_client_config+0x0): undefined reference to `mbedtls_ssl_set_hostname'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.set_client_config+0x4): undefined reference to `mbedtls_ssl_config_defaults'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.set_client_config+0x8): undefined reference to `mbedtls_ssl_conf_ciphersuites'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_create_mbedtls_handle+0xc): undefined reference to `mbedtls_ssl_init'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_create_mbedtls_handle+0x10): undefined reference to `mbedtls_ssl_config_init'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_create_mbedtls_handle+0x14): undefined reference to `mbedtls_ssl_conf_rng'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_create_mbedtls_handle+0x18): undefined reference to `mbedtls_ssl_setup'
C:/Users/Loc_Le/.platformio/packages/toolchain-xtensa-esp-elf@13.2.0+20240530/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:/Users/Loc_Le/.platformio/packages/framework-arduinoespressif32/tools/esp32-arduino-libs/esp32s3/lib\libesp-tls.a(esp_tls_mbedtls.c.obj):(.literal.esp_create_mbedtls_handle+0x1c): undefined reference to `mbedtls_ssl_set_bio'
....
void initMQTT() {
esp_mqtt_client_config_t mqtt_cfg = {
.broker = {
.address = {
.uri = "localhost",
},
},
.credentials = {
.username = "",
.authentication = {
.password = "",
},
},
.session = {
.keepalive = 60,
}
};
mqtt_client = esp_mqtt_client_init(&mqtt_cfg);
if (mqtt_client == NULL) {
Serial.println("MQTT client init failed");
return;
}
esp_err_t err = esp_mqtt_client_start(mqtt_client);
if (err != ESP_OK) {
Serial.printf("MQTT client start failed: %s\n", esp_err_to_name(err));
} else {
Serial.println("MQTT client started successfully");
}
}
Here is my platformio.ini
[env:seeed_xiao_esp32s3]
platform = espressif32
board = seeed_xiao_esp32s3
framework = arduino
build_flags = -DBOARD_HAS_PSRAM
-DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_WARN
board_build.arduino.memory_type = qio_opi
board_build.f_flash = 80000000L
board_build.flash_mode = qio
monitor_speed = 115200
monitor_rts = 0
monitor_dtr = 0
board_build.filesystem = littlefs
lib_deps =
seeed-studio/Seeed_Arduino_SSCMA@^1.0.0
bblanchon/ArduinoJson@^7.4.1
hideakitai/ArduinoEigen@^0.3.2