Mac gcc non-virtual thunk error
- by fret
I'm getting these non-virtual thunk errors only in the Deployment build of my app. It uses a private framework called Lgi. Building on 10.5.8 using XCode 3.1.4 (latest for leopard?) The error looks like this:
Ld /Users/matthew/Code/Scribe-Branches/v2.00/build/Development/Scribe.app/Contents/MacOS/Scribe normal i386
cd /Users/matthew/Code/Scribe-Branches/v2.00
/Developer/usr/bin/g++-4.0 -arch i386 -L/Users/matthew/Code/Scribe-Branches/v2.00/build/Development -F/Users/matthew/Code/Scribe-Branches/v2.00/build/Development -F/Users/matthew/Code/Lgi/build -F/Users/matthew/Code/Scribe-Branches/v2.00/../../Lgi/build/Development -F/Users/matthew/Code/Scribe-Branches/v2.00/../../Lgi/build/Development -F/Users/matthew/Code/Scribe-Branches/v2.00/../../Lgi/build/Deployment -F/Users/matthew/Code/Scribe-Branches/v2.00/../../Lgi/build/Development -F/Users/matthew/Code/Scribe-Branches/v2.00/../../Lgi/build/Deployment -filelist /Users/matthew/Code/Scribe-Branches/v2.00/build/Scribe.build/Development/Scribe.build/Objects-normal/i386/Scribe.LinkFileList -framework Carbon -framework Lgi -o /Users/matthew/Code/Scribe-Branches/v2.00/build/Development/Scribe.app/Contents/MacOS/Scribe
Undefined symbols:
"non-virtual thunk to GWindow::OnDrop(char*, GVariant*, GdcPt2, int)", referenced from:
vtable for ScribeWndin ScribeApp.o
vtable for GShutdownin ScribeApp.o
vtable for CalendarUiin Calendar.o
vtable for CalendarViewWndin CalendarView.o
vtable for CalendarConfigin CalendarView.o
vtable for ScribeExportin Exp_Scribe.o
vtable for GNewMailDlgin GNewMailDlg.o
....etc for lots of classes....
Anyway I know I'm not leaving those undefined because it does in fact link and run fine in the development build. Now after googling the issue the first thing to try is changing the optimization setting, which I did... and no dice. Some link error.
So these virtual functions are initially defined in GDragDropTarget, and GWindow's inheritance looks like this:
class LgiClass GWindow : public GView
#ifndef WIN32
, public GDragDropTarget
#endif
(LgiClass being for __declspec export/import on win32)
Any ideas on what to try next?
Maybe I need to provide more info.