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?
Btw this is some example flags for the framework:
CompileC build/Lgi.build/Deployment/Lgi.build/Objects-normal/i386/GViewCommon.o
/Users/matthew/Code/Lgi/src/common/Lgi/GViewCommon.cpp normal i386 c++
com.apple.compilers.gcc.4_0
cd /Users/matthew/Code/Lgi
/Developer/usr/bin/gcc-4.0 -x c++ -arch i386 -fmessage-length=0 -pipe -Wno-trigraphs
-fpascal-strings -fasm-blocks -Os -Wreturn-type -Wunused-variable
-isysroot /Developer/SDKs/MacOSX10.4u.sdk -fvisibility-inlines-hidden
-mmacosx-version-min=10.4
-I/Users/matthew/Code/Lgi/build/Lgi.build/Deployment/Lgi.build/Lgi.hmap
-F/Users/matthew/Code/Lgi/build/Deployment
-F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks -Iinclude/common
-Iinclude/mac -Iinclude/posix -I/Users/matthew/Code/Lgi/build/Deployment/include
-I/Users/matthew/Code/Lgi/build/Lgi.build/Deployment/Lgi.build/DerivedSources/i386
-I/Users/matthew/Code/Lgi/build/Lgi.build/Deployment/Lgi.build/DerivedSources
-DMAC
-include /var/folders/b4/b4LnxwCQGLCmwy36TH3QuU+++TQ/-Caches-/com.apple.Xcode.503/SharedPrecompiledHeaders/Lgi_Prefix-aukthgaeovjxcucuoascfyqekpzz/Lgi_Prefix.pch -c /Users/matthew/Code/Lgi/src/common/Lgi/GViewCommon.cpp
-o /Users/matthew/Code/Lgi/build/Lgi.build/Deployment/Lgi.build/Objects-normal/i386/GViewCommon.o
Ld /Users/matthew/Code/Lgi/build/Lgi.build/Deployment/Lgi.build/Objects-normal/i386/Lgi normal i386
cd /Users/matthew/Code/Lgi
setenv MACOSX_DEPLOYMENT_TARGET 10.4
/Developer/usr/bin/g++-4.0 -arch i386 -dynamiclib -isysroot /Developer/SDKs/MacOSX10.4u.sdk
-L/Users/matthew/Code/Lgi/build/Deployment
-F/Users/matthew/Code/Lgi/build/Deployment
-F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks
-filelist /Users/matthew/Code/Lgi/build/Lgi.build/Deployment/Lgi.build/Objects-normal/i386/Lgi.LinkFileList
-install_name @executable_path/../Frameworks/Lgi.framework/Versions/A/Lgi
-mmacosx-version-min=10.4 -framework Carbon
-framework SystemConfiguration -Wl,-single_module -compatibility_version 1
-current_version 1 -o /Users/matthew/Code/Lgi/build/Lgi.build/Deployment/Lgi.build/Objects-normal/i386/Lgi
And this is the compile/link flags for the application:
CompileC build/Scribe.build/Deployment/Scribe.build/Objects-normal/ppc/IHttp.o
/Users/matthew/Code/Lgi/src/common/INet/IHttp.cpp normal ppc c++ com.apple.compilers.gcc.4_0
cd /Users/matthew/Code/Scribe-Branches/v2.00
/Developer/usr/bin/gcc-4.0 -x c++ -arch ppc -fmessage-length=0 -pipe -Wno-trigraphs
-fpascal-strings -Os -mdynamic-no-pic -DMAC -DSCRIBE_APP -isysroot /Developer/SDKs/MacOSX10.4u.sdk
-mtune=G4 -fvisibility=hidden -fvisibility-inlines-hidden -mmacosx-version-min=10.4
-I/Users/matthew/Code/Scribe-Branches/v2.00/build/Scribe.build/Deployment/Scribe.build/Scribe.hmap
-F/Users/matthew/Code/Scribe-Branches/v2.00/build/Deployment -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
-F/Users/matthew/Code/Scribe-Branches/v2.00/../../Lgi/build/Development
-F/Users/matthew/Code/Scribe-Branches/v2.00/../../Lgi/build/Deployment
-I/Users/matthew/libpng-1.2.37 -I/Users/matthew/jpeg-6b -I../../Lgi/include/common
-I../../Lgi/include/mac -I../../aspell-0.60.6/interfaces/cc
-I/Users/matthew/Code/Scribe-Branches/v2.00/build/Deployment/include
-IResources -I../Lgi/include/common -I../Lgi/include/mac
-I/Users/matthew/Code/Scribe-Branches/v2.00/build/Scribe.build/Deployment/Scribe.build/DerivedSources/ppc
-I/Users/matthew/Code/Scribe-Branches/v2.00/build/Scribe.build/Deployment/Scribe.build/DerivedSources
-DMAC
-include /var/folders/b4/b4LnxwCQGLCmwy36TH3QuU+++TQ/-Caches-/com.apple.Xcode.503/SharedPrecompiledHeaders/Scribe_Prefix-ebutivbeomfbzzguhklrzxnwuwzc/Scribe_Prefix.pch
-c /Users/matthew/Code/Lgi/src/common/INet/IHttp.cpp
-o /Users/matthew/Code/Scribe-Branches/v2.00/build/Scribe.build/Deployment/Scribe.build/Objects-normal/ppc/IHttp.o
Ld /Users/matthew/Code/Scribe-Branches/v2.00/build/Scribe.build/Deployment/Scribe.build/Objects-normal/i386/Scribe
normal i386
cd /Users/matthew/Code/Scribe-Branches/v2.00
setenv MACOSX_DEPLOYMENT_TARGET 10.4
/Developer/usr/bin/g++-4.0 -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk
-L/Users/matthew/Code/Scribe-Branches/v2.00/build/Deployment
-F/Users/matthew/Code/Scribe-Branches/v2.00/build/Deployment
-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
-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/Deployment/Scribe.build/Objects-normal/i386/Scribe.LinkFileList
-mmacosx-version-min=10.4 -framework Carbon -framework Lgi
-o /Users/matthew/Code/Scribe-Branches/v2.00/build/Scribe.build/Deployment/Scribe.build/Objects-normal/i386/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
I'm not sure whats relevant so I posted them all.