lvgl在VS2019编译链接出错问题

  • LVGL实现以下例子,代码如下

    static lv_style_t style;
    lv_style_init(&style);
    /*Set a background color and a radius*/ 
    lv_style_set_radius(&style, LV_STATE_DEFAULT, 5);
    lv_style_set_bg_opa(&style, LV_STATE_DEFAULT, LV_OPA_COVER); 
    lv_style_set_bg_color(&style, LV_STATE_DEFAULT, LV_COLOR_SILVER);
    lv_style_set_border_width(&style, LV_STATE_DEFAULT, 2);
    lv_style_set_border_color(&style, LV_STATE_DEFAULT, LV_COLOR_BLUE);
    lv_style_set_pad_top(&style, LV_STATE_DEFAULT, 10); 
    lv_style_set_pad_bottom(&style, LV_STATE_DEFAULT, 10); 
    lv_style_set_pad_left(&style, LV_STATE_DEFAULT, 10); 
    lv_style_set_pad_right(&style, LV_STATE_DEFAULT, 10);

    lv_style_set_image_recolor(&style, LV_STATE_DEFAULT, LV_COLOR_BLUE);
    lv_style_set_image_recolor_opa(&style, LV_STATE_DEFAULT, LV_OPA_50);

    lv_obj_t* obj = lv_img_create(lv_scr_act(), NULL);
    lv_obj_add_style(obj, LV_IMG_PART_MAIN,&style);
  
    LV_IMG_DECLARE(img_cogwheel_argb);
    
  
    lv_img_set_src(obj, &img_cogwheel_argb);
    lv_obj_align(obj, NULL, LV_ALIGN_CENTER, 0, 0);
  • 编译一下,报以下错误

lvgl在VS2019编译链接出错问题_第1张图片

错误原因是img_cogwheel_argb.c 文件中的变量img_cogwheel_argb定义按C编译

const lv_img_dsc_t img_cogwheel_argb = {
  .header.always_zero = 0,
  .header.w = 100,
  .header.h = 100,
  .data_size = 10000 * LV_IMG_PX_SIZE_ALPHA_BYTE,
  .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
  .data = img_cogwheel_argb_map,
};

而lvgl_similator.cpp中引用的img_cogwheel_argb变量按C++编译,造成名字引用找不到错误,解决方法如下:

选择 "配置属性 > " "c/c + + > 高级" 属性页,将编译为,改成编译为C代码(/TC)

lvgl在VS2019编译链接出错问题_第2张图片

  • 再次编译通过 

  • 运行结果

lvgl在VS2019编译链接出错问题_第3张图片

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Visual,Studio,2019,little,VGL,1024程序员节)