Hi, i’m having a very hard time building lvgl project on espidf framework on platformio.
i have lvgl and lvgl_esp32_drivers in component directory as suggested in porting lvgl with esp32 → GitHub - lvgl/lv_port_esp32: LVGL ported to ESP32 including various display and touchpad drivers
These components were shown in the menuconfig. so after all the configurations i build the project and it gave me.
Compiling .pio/build/esp32dev/components/lvgl/src/core/lv_disp.o
components/lvgl/src/core/lv_disp.c: In function ‘lv_disp_create’:
components/lvgl/src/core/lv_disp.c:105:32: error: ‘lv_draw_sw_init_ctx’ undeclared (first use in this function); did you mean ‘lv_draw_init’?
105 | lv_disp_set_draw_ctx(disp, lv_draw_sw_init_ctx, lv_draw_sw_deinit_ctx, sizeof(lv_draw_sw_ctx_t));
| ^~~~~~~~~~~~~~~~~~~
| lv_draw_init
components/lvgl/src/core/lv_disp.c:105:32: note: each undeclared identifier is reported only once for each function it appears in
components/lvgl/src/core/lv_disp.c:105:53: error: ‘lv_draw_sw_deinit_ctx’ undeclared (first use in this function)
105 | lv_disp_set_draw_ctx(disp, lv_draw_sw_init_ctx, lv_draw_sw_deinit_ctx, sizeof(lv_draw_sw_ctx_t));
| ^~~~~~~~~~~~~~~~~~~~~
components/lvgl/src/core/lv_disp.c:105:83: error: ‘lv_draw_sw_ctx_t’ undeclared (first use in this function); did you mean ‘lv_draw_ctx_t’?
105 | lv_disp_set_draw_ctx(disp, lv_draw_sw_init_ctx, lv_draw_sw_deinit_ctx, sizeof(lv_draw_sw_ctx_t));
| ^~~~~~~~~~~~~~~~
| lv_draw_ctx_t
Compiling .pio/build/esp32dev/components/lvgl/src/core/lv_obj.o
Compiling .pio/build/esp32dev/components/lvgl/src/core/lv_obj_class.o
*** [.pio/build/esp32dev/components/lvgl/src/core/lv_disp.o] Error 1
In file included from components/lvgl/src/core/…/libs/ffmpeg/…/…/…/lvgl.h:64,
from components/lvgl/src/core/…/libs/ffmpeg/lv_ffmpeg.h:15,
from components/lvgl/src/core/lv_obj.c:28:
components/lvgl/src/core/…/libs/ffmpeg/…/…/…/src/widgets/meter/lv_meter.h:22:2: error: #error “lv_meter: Complex drawing is required. Enable it in lv_conf.h (LV_USE_DRAW_MASKS 1)”
22 | #error “lv_meter: Complex drawing is required. Enable it in lv_conf.h (LV_USE_DRAW_MASKS 1)”
| ^~~~~
In file included from components/lvgl/src/core/…/libs/ffmpeg/lv_ffmpeg.h:15,
from components/lvgl/src/core/lv_obj.c:28:
components/lvgl/src/core/…/libs/ffmpeg/…/…/…/lvgl.h:120:2: warning: #warning “You are using the development version of LVGL which is not stable at this moment. For production use the release/v8.3 branch. To silence this warning add #define LV_USE_DEV_VERSION to lv_conf.h” [-Wcpp]
120 | #warning “You are using the development version of LVGL which is not stable at this moment. For production use the release/v8.3 branch. To silence this warning add #define LV_USE_DEV_VERSION to lv_conf.h”
| ^~~~~~~
*** [.pio/build/esp32dev/components/lvgl/src/core/lv_obj.o] Error 1
========================================== [FAILED] Took 24.20 seconds ==========================================
I assumed that i might be using old version of lvgl so i cloned the lvgl 8.3.5 in components, (which is the latest version of now.)
now i am having this error
Processing esp32dev (platform: espressif32; board: esp32dev; framework: espidf)
Verbose mode can be enabled via -v, --verbose
option
CONFIGURATION: Redirecting...
PLATFORM: Espressif 32 (6.1.0) > Espressif ESP32 Dev Module
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-espidf @ 3.50001.0 (5.0.1)
- tool-cmake @ 3.16.4
- tool-esptoolpy @ 1.40500.0 (4.5.0)
- tool-ninja @ 1.7.1
- toolchain-esp32ulp @ 1.23500.220830 (2.35.0)
- toolchain-xtensa-esp32 @ 11.2.0+2022r1
Reading CMake configuration…
LDF: Library Dependency Finder → Library Dependency Finder (LDF) — PlatformIO latest documentation
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 0 compatible libraries
Scanning dependencies…
No dependencies
Building in release mode
Compiling .pio/build/esp32dev/src/main.o
Compiling .pio/build/esp32dev/components/lvgl/examples/widgets/table/lv_example_table_2.o
Compiling .pio/build/esp32dev/components/lvgl/demos/widgets/assets/img_clothes.o
components/lvgl/examples/widgets/table/lv_example_table_2.c: In function ‘lv_example_table_2’:
components/lvgl/examples/widgets/table/lv_example_table_2.c:95:34: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘int’ [-Werror=format=]
95 | lv_label_set_text_fmt(label, “%“LV_PRIu32” items were created in %“LV_PRIu32” ms\n”
| ^~~
cc1: some warnings being treated as errors
Compiling .pio/build/esp32dev/components/lvgl/demos/widgets/assets/img_demo_widgets_avatar.o
*** [.pio/build/esp32dev/components/lvgl/examples/widgets/table/lv_example_table_2.o] Error 1
========================================== [FAILED] Took 16.90 seconds ==========================================
Please guide me where i’m going wrong, is it the version conflict or what?