天天看點

lvgl在VS2019編譯連結出錯問題LVGL實作以下例子,代碼如下編譯一下,報以下錯誤再次編譯通過 運作結果 

  • 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編譯連結出錯問題LVGL實作以下例子,代碼如下編譯一下,報以下錯誤再次編譯通過 運作結果 

錯誤原因是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編譯連結出錯問題LVGL實作以下例子,代碼如下編譯一下,報以下錯誤再次編譯通過 運作結果 
  • 再次編譯通過 

lvgl在VS2019編譯連結出錯問題LVGL實作以下例子,代碼如下編譯一下,報以下錯誤再次編譯通過 運作結果 

  • 運作結果

lvgl在VS2019編譯連結出錯問題LVGL實作以下例子,代碼如下編譯一下,報以下錯誤再次編譯通過 運作結果 

繼續閱讀