Marlin firmware, 'init' is not a member of 'U8GLIB'

i am already try the other solutions, such as installing both library U8glib and U8glib_hall, redownloading marlin, copying the clib folder over to Marlin/src folder, still didn't work, what should i do?

In file included from D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\marlinui_DOGM.h:31:0,
                 from D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\lcdprint_u8g.cpp:14:
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_64128N_2X_HAL::init(pin_t, pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:37:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7565_64128n_HAL_2x_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_64128N_2X_HAL::init(pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:40:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7565_64128n_HAL_2x_hw_spi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_ST7920_128X64_4X_HAL::init(pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:53:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7920_128x64_HAL_4x_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, U8G_PIN_NONE, (uint8_t)reset); // a0 = U8G_PIN_NONE
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_ST7920_128X64_4X_HAL::init(pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:56:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7920_128x64_HAL_4x_hw_spi, (uint8_t)cs, U8G_PIN_NONE, (uint8_t)reset); // a0 = U8G_PIN_NONE
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_ST7920_128X64_RRD::init(pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:71:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7920_128x64_rrd_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, U8G_PIN_NONE, (uint8_t)reset);   // a0 = U8G_PIN_NONE
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SH1106_128X64_2X_I2C_2_WIRE::init(uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:81:59: error: 'init' is not a member of 'U8GLIB'
   void init(uint8_t options = U8G_I2C_OPT_NONE) { U8GLIB::init(&u8g_dev_sh1106_128x64_2x_i2c_2_wire, options); }
                                                           ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SSD1306_128X64_2X_I2C_2_WIRE::init(uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:90:59: error: 'init' is not a member of 'U8GLIB'
   void init(uint8_t options = U8G_I2C_OPT_NONE) { U8GLIB::init(&u8g_dev_ssd1306_128x64_2x_i2c_2_wire, options); }
                                                           ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_TFT_320X240_UPSCALE_FROM_128X64::init(uint8_t, uint8_t, uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:103:77: error: 'init' is not a member of 'U8GLIB'
   void init(uint8_t cs, uint8_t rs, uint8_t reset = U8G_PIN_NONE) { U8GLIB::init(&u8g_dev_tft_320x240_upscale_from_128x64, cs, rs, reset); }
                                                                             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_MINI12864_2X_HAL::init(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:115:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_uc1701_mini12864_HAL_2x_sw_spi, sck, mosi, cs, a0, reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_MINI12864_2X_HAL::init(uint8_t, uint8_t, uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:118:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_uc1701_mini12864_HAL_2x_hw_spi, cs, a0, reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SSD1309_128X64_HAL::init(pin_t, pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:131:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_ssd1309_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SSD1309_128X64_HAL::init(pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:134:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_ssd1309_hw_spi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
In file included from D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\marlinui_DOGM.h:31:0,
                 from D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\marlinui_DOGM.cpp:42:
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_64128N_2X_HAL::init(pin_t, pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:37:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7565_64128n_HAL_2x_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_64128N_2X_HAL::init(pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:40:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7565_64128n_HAL_2x_hw_spi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_ST7920_128X64_4X_HAL::init(pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:53:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7920_128x64_HAL_4x_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, U8G_PIN_NONE, (uint8_t)reset); // a0 = U8G_PIN_NONE
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_ST7920_128X64_4X_HAL::init(pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:56:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7920_128x64_HAL_4x_hw_spi, (uint8_t)cs, U8G_PIN_NONE, (uint8_t)reset); // a0 = U8G_PIN_NONE
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_ST7920_128X64_RRD::init(pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:71:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7920_128x64_rrd_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, U8G_PIN_NONE, (uint8_t)reset);   // a0 = U8G_PIN_NONE
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SH1106_128X64_2X_I2C_2_WIRE::init(uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:81:59: error: 'init' is not a member of 'U8GLIB'
   void init(uint8_t options = U8G_I2C_OPT_NONE) { U8GLIB::init(&u8g_dev_sh1106_128x64_2x_i2c_2_wire, options); }
                                                           ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SSD1306_128X64_2X_I2C_2_WIRE::init(uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:90:59: error: 'init' is not a member of 'U8GLIB'
   void init(uint8_t options = U8G_I2C_OPT_NONE) { U8GLIB::init(&u8g_dev_ssd1306_128x64_2x_i2c_2_wire, options); }
                                                           ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_TFT_320X240_UPSCALE_FROM_128X64::init(uint8_t, uint8_t, uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:103:77: error: 'init' is not a member of 'U8GLIB'
   void init(uint8_t cs, uint8_t rs, uint8_t reset = U8G_PIN_NONE) { U8GLIB::init(&u8g_dev_tft_320x240_upscale_from_128x64, cs, rs, reset); }
                                                                             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_MINI12864_2X_HAL::init(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:115:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_uc1701_mini12864_HAL_2x_sw_spi, sck, mosi, cs, a0, reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_MINI12864_2X_HAL::init(uint8_t, uint8_t, uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:118:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_uc1701_mini12864_HAL_2x_hw_spi, cs, a0, reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SSD1309_128X64_HAL::init(pin_t, pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:131:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_ssd1309_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SSD1309_128X64_HAL::init(pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:134:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_ssd1309_hw_spi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
In file included from D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\marlinui_DOGM.h:31:0,
                 from D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\dogm_Statusscreen.h:32,
                 from D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\status_screen_DOGM.cpp:32:
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_64128N_2X_HAL::init(pin_t, pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:37:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7565_64128n_HAL_2x_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_64128N_2X_HAL::init(pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:40:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7565_64128n_HAL_2x_hw_spi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_ST7920_128X64_4X_HAL::init(pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:53:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7920_128x64_HAL_4x_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, U8G_PIN_NONE, (uint8_t)reset); // a0 = U8G_PIN_NONE
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_ST7920_128X64_4X_HAL::init(pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:56:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7920_128x64_HAL_4x_hw_spi, (uint8_t)cs, U8G_PIN_NONE, (uint8_t)reset); // a0 = U8G_PIN_NONE
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_ST7920_128X64_RRD::init(pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:71:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_st7920_128x64_rrd_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, U8G_PIN_NONE, (uint8_t)reset);   // a0 = U8G_PIN_NONE
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SH1106_128X64_2X_I2C_2_WIRE::init(uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:81:59: error: 'init' is not a member of 'U8GLIB'
   void init(uint8_t options = U8G_I2C_OPT_NONE) { U8GLIB::init(&u8g_dev_sh1106_128x64_2x_i2c_2_wire, options); }
                                                           ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SSD1306_128X64_2X_I2C_2_WIRE::init(uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:90:59: error: 'init' is not a member of 'U8GLIB'
   void init(uint8_t options = U8G_I2C_OPT_NONE) { U8GLIB::init(&u8g_dev_ssd1306_128x64_2x_i2c_2_wire, options); }
                                                           ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_TFT_320X240_UPSCALE_FROM_128X64::init(uint8_t, uint8_t, uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:103:77: error: 'init' is not a member of 'U8GLIB'
   void init(uint8_t cs, uint8_t rs, uint8_t reset = U8G_PIN_NONE) { U8GLIB::init(&u8g_dev_tft_320x240_upscale_from_128x64, cs, rs, reset); }
                                                                             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_MINI12864_2X_HAL::init(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:115:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_uc1701_mini12864_HAL_2x_sw_spi, sck, mosi, cs, a0, reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_MINI12864_2X_HAL::init(uint8_t, uint8_t, uint8_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:118:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_uc1701_mini12864_HAL_2x_hw_spi, cs, a0, reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SSD1309_128X64_HAL::init(pin_t, pin_t, pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:131:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_ssd1309_sw_spi, (uint8_t)sck, (uint8_t)mosi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h: In member function 'void U8GLIB_SSD1309_128X64_HAL::init(pin_t, pin_t, pin_t)':
D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\lcd\dogm\HAL_LCD_class_defines.h:134:13: error: 'init' is not a member of 'U8GLIB'
     U8GLIB::init(&u8g_dev_ssd1309_hw_spi, (uint8_t)cs, (uint8_t)a0, (uint8_t)reset);
             ^~~~
exit status 1

Compilation error: 'init' is not a member of 'U8GLIB'

Try reading the pinned post re 'How to get the most from the forum' and also how to ask a question.

I don't have a display to test it with and I have no direct experience of marlin firmware, but first of all: what board are you using? Are you sure it's in the u8glib library compatibility list?

I asked to Gemini, this is its answer, hope it helps:

This error, "'init' is not a member of 'U8GLIB'", almost always means you're using the wrong version of the U8glib library when compiling Marlin firmware.

Here's why this happens and how to fix it:

The Problem: Marlin's Custom U8glib-HAL

Marlin firmware often uses a modified version of the U8glib library, specifically tailored for their hardware abstraction layer (HAL) and display configurations. This custom version is typically found in their own GitHub repository as U8glib-HAL. The standard U8glib library you might find in the Arduino IDE's Library Manager (or from the original developer, Olikraus) does not have the init() function that Marlin expects.

How to Fix It:

The most common and recommended solution is to ensure you're using the correct U8glib-HAL library that Marlin provides.

  1. Delete Existing U8glib (Crucial!):
  • Go to your Arduino sketchbook directory (File > Preferences in Arduino IDE, look for "Sketchbook location").
  • Navigate to the libraries folder within that sketchbook directory.
  • Delete any existing U8glib folder. This is vital to prevent conflicts and ensure the correct version is used.
  1. Download Marlin's U8glib-HAL:
  • Go to the official Marlin Firmware GitHub repository. Look for the U8glib-HAL repository. It's usually a separate repository linked from the main Marlin one, or you can search for "MarlinFirmware U8glib-HAL" on GitHub.
  • Download the latest Master branch (or bugfix-2.x if you're using a development version of Marlin) of the U8glib-HAL library as a ZIP file. Do not use older releases, as they might also cause this error.
  1. Install U8glib-HAL via Arduino IDE:
  • In the Arduino IDE, go to Sketch > Include Library > Add .ZIP Library...
  • Select the ZIP file you just downloaded for U8glib-HAL.
  1. Recompile Marlin:
  • Now, try compiling your Marlin firmware again. It should now find the correct init() function within the U8glib-HAL library.

I am using arduino mega 2560, and i am using least versions of u8glib from arduino

Do you mean the lowest/earliest version?

Have you tried more up-to-date versions?

u8glib was not written by Arduino, it is a third-party library, written and maintained by a member of this forum.

u8glib became defunct many years ago and was replaced by u8g2lib.

What is "marlin"?

How did you download Marlin? The full download should include a customized version of the U8g library.

I just downloaded Marlin-bugfix-2.0.x and have no problem compiling with Arduino IDE 1.8.19 or 2.3.6.

Could you post your Configuration.h and Configuration_adv.h files in case there is something specific in those that is causing the error.

Marlin firmware used for 3D printers https://marlinfw.org/

1 Like

i mean the newest version

Configuration.h (100.1 KB)
Configuration_adv.h (160.2 KB)
Marlin.ino (2.1 KB)
Version.h (2.4 KB)

Do you have a link to where you downloaded Marlin? Your configuration file is for an older version of Marlin, I'm trying to compile with the current version of Marlin-bugfix-2.0.x.

That may be part of the problem, the current U8glib-HAL at https://github.com/MarlinFirmware/U8glib-HAL may not be compatible with the version of Marlin you are using.

Check these out for clues;

Any other topics with a good match to your own problem are shown at the bottom of the page under "Related topics"

Cairo Mini 3d-printer - Make Some Stuff

That version of Marlin uses the 0.4.4 version of U8glib-HAL. The library is located in Marlin-bugfix-2.0.x/.pio/libdeps/mega2560/U8glib-HAL, but copying that to the Arduino libraries folder does not work, likely because the library structure has changed in the IDE. I tried copying the contents of the src directory to the U8glib-HAL directory, which allows the IDE to find the header file. That gets rid of the error you are having, but gives a few other errors about missing U8g functions.

I can get the code to compile by using the U8glib-HAL library version 0.5.4 (current version) from the library manager, and adding a file named U8glib.h to the library's src folder with the following contents:

#pragma once

#include "U8glib-HAL.h"

< edit > you would need to delete any other U8glib libraries to avoid the Arduino IDE using an incorrect library < end edit >

Better solution would be to go through the Configuration.h and Configuration_adv.h files and configure a current version of Marlin for the printer.

Alternatively, you could try compiling with an older version of the Arduino IDE, but I'm not sure at which point the library structure requirements were changed.

thanks, the the "init" is not a member of "U8GLIB" is gone, but now come new error

In file included from c:\Users\asus\Documents\Arduino\libraries\U8glib\src/U8glib.h:42:0,
                 from D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\HAL\AVR\u8g_com_HAL_AVR_sw_spi.cpp:65:
c:\Users\asus\Documents\Arduino\libraries\U8glib\src/clib/u8g.h:123:25: internal compiler error: in type_hash_canon, at tree.c:7158
 typedef uint8_t PROGMEM u8g_pgm_uint8_t;
                         ^~~~~~~~~~~~~~~
exit status 1

Compilation error: exit status 1

Did you remove any copies of the U8glib library? Looks like the compiler is using a file from U8glib instead of U8glib-HAL.

if i remove U8glib library this error massage showing instead

D:\Firmware\Marlin-bugfix-2.0.x\Marlin\src\HAL\AVR\u8g_com_HAL_AVR_sw_spi.cpp:65:10: fatal error: U8glib.h: No such file or directory
 #include <U8glib.h>
          ^~~~~~~~~~
compilation terminated.
exit status 1

Compilation error: U8glib.h: No such file or directory

Do you have the current U8glib-HAL library installed, with the modification I suggested?

i am sorry, i am a bit confuse, so i just need to make new file in library's src folder with name U8glib.h, with the content just

#pragma once

#include "U8glib-HAL.h"

like this?

Yes, but be careful, you are naming the file U8glib.h.ino