-
Notifications
You must be signed in to change notification settings - Fork 19
Description
Hello! I ported eez-framework to esp32 idf architecture and compiled it with lvgl9.2, idf5.4.0 and it reported an error with two main parts:
The first part of the error is as follows:
- error: invalid use of incomplete type 'lv_roller_t' {aka 'struct lv_roller_t'}
300 | size_t numPages = roller->inf_page_cnt;
The second part reports an error:
2, /eez-framework/src/eez/flow/components/lvgl.cpp:224:63: error: invalid conversion from 'lv_state_t' {aka 'short unsigned int'} to 'lv_obj_ flag_t' [-fpermissive]
224 | if (booleanValue) lv_obj_add_flag(target, flag);
| ^~~~
| ^~~~
| lv_state_t {aka short unsigned int}
components/eez-framework/src/eez/flow/components/lvgl.cpp:225:52: error: invalid conversion from 'lv_state_t' {aka 'short unsigned int'} to ' lv_obj_flag_t' [-fpermissive]
225 | else lv_obj_clear_flag(target, flag); | lv_obj_clear_flag(target, flag); lv_obj_flag(target, flag)
| ^~~~
| ^~~~
| lv_state_t {aka short unsigned int}
I can't fix the first part of the error, I don't know where it's caused by not setting the right settings, the second part of the error looks like the book data type doesn't match, I forced the type conversion so it won't report the error, forced the type code: if (booleanValue) lv_obj_add_flag(target, (lv_obj_flag_t)flag); else lv_obj_clear_flag(target, flag); ^~~~ | | lv_state_t {aka short unsigned int}
else lv_obj_clear_flag(target, (lv_obj_flag_t)flag);
Translated with DeepL.com (free version)
I compiled the cmake configuration as follows
`if(ESP_PLATFORM)
file(GLOB_RECURSE SOURCES
./src/eez/.cpp
./src/eez/.c
)
idf_component_register(
SRCS ${SOURCES}
INCLUDE_DIRS ./src ./src/eez/libs/agg
REQUIRES lvgl__lvgl
)
target_compile_definitions(
${COMPONENT_LIB}
PUBLIC EEZ_FOR_LVGL LV_LVGL_H_INCLUDE_SIMPLE)
target_compile_options(
${COMPONENT_LIB}
PRIVATE -Wno-error=dangling-pointer)
else()
cmake_minimum_required(VERSION 3.12)
include_directories(
./src
./src/eez/libs/agg
)
file(GLOB_RECURSE SOURCES
./src/eez/*.cpp
./src/eez/*.c
)
ADD_LIBRARY(eez-framework STATIC ${SOURCES})
target_include_directories(eez-framework SYSTEM PUBLIC ./src ./src/eez/libs/agg)
endif()
`
Under lvgl 8.4 I followed this cmake and it works fine