When trying to compile any sample (e.g. HelloWorld), I get loads of warnings about memory leakages - bad style, but no real problem yet.
Unfortunately the linker finally fails with unresolved symbols
"___CxxFrameHandler" and "__except_list".
Anyone got a clue ? What library exports those objects, what went wrong with the building process ?
Thanks in advance for any hint!
ch33rz
Here comes the complete compiler output from HelloWorld...
------ Build started: Project: HELLOWORLD, Configuration: Uni Debug Win32 ------
Compiling...
HELLOWORLD.UID.CPP
\6.1\Series60\Epoc32\Include\E32STD.INL(319) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(321) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(384) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(465) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(467) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(530) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
HelloWorld_Main.cpp
\6.1\Series60\Epoc32\Include\E32STD.INL(319) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(321) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(384) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(465) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(467) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(530) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
HelloWorld_Document.cpp
\6.1\Series60\Epoc32\Include\E32STD.INL(319) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(321) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(384) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(465) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(467) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(530) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32Ex\HelloWorld\HelloWorld_Document.cpp(33) : warning C4291: 'TAny *CBase::operator new(TUint,TLeave)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32BASE.H(19) : see declaration of 'CBase::operator new'
HelloWorld_AppView.cpp
\6.1\Series60\Epoc32\Include\E32STD.INL(319) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(321) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(384) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(465) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(467) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(530) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32Ex\HelloWorld\HelloWorld_AppView.cpp(29) : warning C4291: 'TAny *CBase::operator new(TUint,TLeave)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32BASE.H(19) : see declaration of 'CBase::operator new'
HelloWorld_AppUi.cpp
\6.1\Series60\Epoc32\Include\E32STD.INL(319) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(321) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(384) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(465) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(467) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(530) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
HelloWorld_Application.cpp
\6.1\Series60\Epoc32\Include\E32STD.INL(319) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(321) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(384) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(465) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(467) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32\Include\E32STD.INL(530) : warning C4291: 'TAny *operator new(TUint,TAny *)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32STD.H(3242) : see declaration of 'operator new'
\6.1\Series60\Epoc32Ex\HelloWorld\HelloWorld_Application.cpp(34) : warning C4291: 'TAny *CBase::operator new(TUint,TLeave)' : no matching operator delete found; memory will not be freed if initialization throws an exception
\6.1\Series60\Epoc32\Include\E32BASE.H(19) : see declaration of 'CBase::operator new'
Generating Code...
Performing Pre-Link Event...
Doing first-stage link by name
link.exe @H:\DOCUME~1\LOBOTO~1\LOCALS~1\Temp\nm56.tmp
LINK : warning LNK4044: unrecognized option '/WARN:3'; ignored
Creating library \6.1\Series60\EPOC32\BUILD\6.1\SERIES60\EPOC32EX\HELLOWORLD\HELLOWORLD\WINS\UDEB\HELLOWORLD.lib and object \6.1\Series60\EPOC32\BUILD\6.1\SERIES60\EPOC32EX\HELLOWORLD\HELLOWORLD\WINS\UDEB\HELLOWORLD.exp
HELLOWORLD_APPUI.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler
HELLOWORLD_APPVIEW.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler
HELLOWORLD_MAIN.obj : error LNK2001: unresolved external symbol ___CxxFrameHandler
HELLOWORLD_APPUI.obj : error LNK2019: unresolved external symbol __except_list referenced in function "public: virtual __thiscall CExampleAppUi::~CExampleAppUi(void)" (??1CExampleAppUi@@UAE@XZ)
HELLOWORLD_APPVIEW.obj : error LNK2001: unresolved external symbol __except_list
HELLOWORLD_MAIN.obj : error LNK2001: unresolved external symbol __except_list
\6.1\Series60\EPOC32\BUILD\6.1\SERIES60\EPOC32EX\HELLOWORLD\HELLOWORLD\WINS\UDEB\HELLOWORLD.APP : fatal error LNK1120: 2 unresolved externals
NMAKE : fatal error U1077: 'link.exe' : return code '0x460'
Stop.
if exist "\6.1\Series60\EPOC32\BUILD\6.1\SERIES60\EPOC32EX\HELLOWORLD\HELLOWORLD\WINS\UDEB\HELLOWORLD.exp" del "\6.1\Series60\EPOC32\BUILD\6.1\SERIES60\EPOC32EX\HELLOWORLD\HELLOWORLD\WINS\UDEB\HELLOWORLD.exp"
Stopped the build by removing the export object,
if present, because the pre-link stage failed
Linking...
LINK : fatal error LNK1181: cannot open input file '\6.1\Series60\EPOC32\BUILD\6.1\SERIES60\EPOC32EX\HELLOWORLD\HELLOWORLD\WINS\UDEB\HELLOWORLD.exp'
Build log was saved at "file://s:\6.1\Series60\EPOC32\BUILD\6.1\SERIES60\EPOC32EX\HELLOWORLD\HELLOWORLD\WINS\UDEB\BuildLog.htm"
HELLOWORLD - 9 error(s), 40 warning(s)
The Series 60 SDK v0.9 "supports" Microsoft Visual Studio .NET but not fully tested. Therefore we dont give any guarantee if all tools come together with the SDK would work correctly in this environment.
Regards,
FN Developer Support
RE: can not successfully link any sample using .NET
2002-08-20, 00:29#3
Well, did not yet make any progress on that one...
Only thing I found out: __CxxFrameHandler seems to be part of libc/libcp/msvcrt/... Unfortunately, I did not yet find out how to explicitly link any of them. Adding those to input-lib on project-properties doesnt seem to help... just a stupid attempt...