KipK / Ghettostation

Multiprotocol antenna tracker and ground osd.
144 stars 69 forks source link

LiquidCrystal\LCD.cpp.o:(.rodata._ZTV3LCD+0xe): undefined reference to `__cxa_pure_virtual' #5

Closed carbogit closed 10 years ago

carbogit commented 10 years ago

I am getting this error on compile

LiquidCrystal\LCD.cpp.o:(.rodata._ZTV3LCD+0xe): undefined reference to `__cxa_pure_virtual'

KipK commented 10 years ago

Have you installed the LiquidCrystal lib provided with the source files ? It's a modified one which works with i2c lcds too.

carbogit commented 10 years ago

Yes, it resides in \libraries If it was not present there the error message would be

GhettoStation:73: error: 'LiquidCrystal_I2C' does not name a type Lcd.ino: In function 'void init_lcdscreen()': Lcd:10: error: 'LCD' was not declared in this scope Lcd.ino: In function 'void refresh_lcd()': Lcd:56: error: 'LCD' was not declared in this scope

KipK commented 10 years ago

have you deleted previous liquidcrystal installed by default ? Just to be sure you've not mixed some files.

What Arduino version do you use ? I use 1.0.5.

carbogit commented 10 years ago

arduino-1.0.5-r2. I have not tried 1.5.5 BETA since teensyduino refuses to install for that version.

I have deleted both LiquidCrystal and LiquidCrystalfast folders from arduino-1.0.5-r2\libraries

KipK commented 10 years ago

I'm installing r2 now to try to reproduce this.

KipK commented 10 years ago

ok got same error with 1.0.5-r2. not with 1.0.5

Got an idea how to fix this, hold on.

KipK commented 10 years ago

looks a bit complicated for now. It only happend with Teensy. For now grab arduino 1.0.5 , this one works here. I'll try to figure this out later.

cheers.

KipK commented 10 years ago

Here's the link:

https://code.google.com/p/arduino/downloads/detail?name=arduino-1.0.5-windows.exe&can=2&q=

KipK commented 10 years ago

Ok, found it.

in your Arduino folder, hardware\teensy\cores\teensy\new.cpp uncomment all the latest lines:

int cxa_guard_acquire(guard g) {return !(char _)(g);}; void cxa_guard_release (guard g) {_(char )g = 1;}; void cxa_guard_abort (guard *) {};

void __cxa_pure_virtual(void) {};

KipK commented 10 years ago

So, it's not only for arduino 1.0.5-rc2. I've checked in my older ones and it was already commented out by default.

They've probably changed it in latest teensyduino distribution.

Thanks for pointing it out.

carbogit commented 10 years ago

Compile done, thank you!