i2c example not working

I finally get a display i can recognize I did a sketch that returned its address on the serial monitor it said 55 (0x37) and now I cant even find a hello world sketch that will compile in arduino. I downloaded the i2c liquid crystal library and open the example and try to compile. and yes i have a 40x4 lcd it wouldn't compile as it opened anyway.

Anyone have a hello world sketch that compiles and will work.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x37,40,4);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
}

void loop()
{
}

I get these errors

In file included from HelloWorld.pde:2:0:
C:\Users\Joe\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:80:16: error: conflicting return type specified for 'virtual void LiquidCrystal_I2C::write(uint8_t)'
virtual void write(uint8_t);
^
In file included from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,
from C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire/Wire.h:26,
from HelloWorld.pde:1:
C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Print.h:48:20: error: overriding 'virtual size_t Print::write(uint8_t)'
virtual size_t write(uint8_t) = 0;
^
Error compiling.

I took the library and physically moved it to the arduino program files library and it compiles but sends garbled text to my display. it is letters and numbers not mumbo jumo its just random and too many letters for hello world/ I tried this with 2 different displays now and same random text.

I tried this new sketch from this thread i found and it works as far as it sends hello world perfectly. it just does not clear the screen before hand. Quite frankly I am lost as to what library to start using and how for example is it using the .wire library to say hello world or the stdlib.h?

http://forum.arduino.cc/index.php?topic=246001.0

#include <Wire.h>
#include <stdlib.h>
#define LCD (0x28)
void setup()
{
    Wire.begin();
    Wire.beginTransmission(LCD);
  // Print a message to the LCD.

    Wire.write("Hello, world!");
    Wire.endTransmission();
}

void loop()
{
}

I am using a LK202-25-V Matrix Orbital LCD Display and I do have pullups on the data lines.

http://www.matrixorbital.com/product_info.php?products_id=49

http://www.matrixorbital.ca/manuals/LK_Series/LK202-25/LK202-25.pdf

Also a Lcd4041 I have it working with it too http://www.matrixorbital.ca/manuals/LCDVFD_Series/LCD_VFD_Legacy/LCD4041.pdf

I have a new Rigol Oscilloscope with i2c data capture and translation so Plan on messing with it later to see exactly what it is sending using the other sketch aka liquid crystal library.

I love all these matrix orbital displays so I am going to try to figure out one day how to use or make a library just for them as they have tons of built in features a regular i2c display does not have. That may be part of my problem.

I dont't care what code you use. none of them work. why not? They should all work.