Lc_example_arc_1 No percentage label displayed

I am using the ESP32 S3 Touch 4.3inc so using the Waveshare lv_port_v8 using lvgl v8

I can run the lv_example_arc_1 but no label showing the percentage is displayed.

When I copy the example directly into the sketch (rather than just call lv_example_arc_1 then I get the error

invalid conversion from ‘void*’ to ‘lv_obj_t*’ {aka ‘_lv_obj_t*’} [-fpermissive]
lv_obj_t * label = lv_event_get_user_data(e);
| ~~~~~~~~~~~~~~~~~~~~^
Code below. I can only assume that that this error is causing the lable not to be displayed but for some reason it compiles when running the example. Any ideas as to what is happening

void setup()
{
String title = “LVGL porting example”;

Serial.begin(115200);
Serial.println(title + " start");

Serial.println("Initialize panel device");
ESP_Panel *panel = new ESP_Panel();
panel->init();

#if LVGL_PORT_AVOID_TEAR
// When avoid tearing function is enabled, configure the RGB bus according to the LVGL configuration
ESP_PanelBus_RGB *rgb_bus = static_cast<ESP_PanelBus_RGB *>(panel->getLcd()->getBus());
rgb_bus->configRgbFrameBufferNumber(LVGL_PORT_DISP_BUFFER_NUM);
rgb_bus->configRgbBounceBufferSize(LVGL_PORT_RGB_BOUNCE_BUFFER_SIZE);
#endif
panel->begin();

Serial.println("Initialize LVGL");
lvgl_port_init(panel->getLcd(), panel->getTouch());

Serial.println("Create UI");
/* Lock the mutex due to the LVGL APIs are not thread-safe */
lvgl_port_lock(-1);

lv_arc_1();    /*renamed from lv_example_arc_1

lvgl_port_unlock();

} // END setup

static void value_changed_event_cb(lv_event_t * e);

void lv_arc_1(void)
{
lv_obj_t * label = lv_label_create(lv_scr_act());

/*Create an Arc*/
lv_obj_t * arc = lv_arc_create(lv_scr_act());
lv_obj_set_size(arc, 150, 150);
lv_arc_set_rotation(arc, 135);
lv_arc_set_bg_angles(arc, 0, 270);
lv_arc_set_value(arc, 10);
lv_obj_center(arc);
lv_obj_add_event_cb(arc, value_changed_event_cb, LV_EVENT_VALUE_CHANGED, label);

/*Manually update the label for the first time*/
lv_event_send(arc, LV_EVENT_VALUE_CHANGED, NULL);

}

static void value_changed_event_cb(lv_event_t * e)
{
lv_obj_t * arc = lv_event_get_target(e);
lv_obj_t * label = lv_event_get_user_data(e);

lv_label_set_text_fmt(label, "%d%%", lv_arc_get_value(arc));

/*Rotate the label to the current position of the arc*/
lv_arc_rotate_obj_to_angle(arc, label, 25);

}