Path: chuka.playstation.co.uk!news From: "Graeme Evans" Newsgroups: scee.yaroze.freetalk.english Subject: Re: Why won't this link? Date: Thu, 1 Mar 2001 22:28:05 -0000 Organization: PlayStation Net Yaroze (SCEE) Lines: 32 Message-ID: <97mifh$3v28@www.netyaroze-europe.com> References: <97kf5l$i7g5@www.netyaroze-europe.com> NNTP-Posting-Host: host62-7-3-196.btinternet.com X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Hello. I think i know the answer to this question. A lot of features of gnu c++ rely on a 'support' library called libgcc2, which isn't compiled into the standard yaroze library. Gil Jaysmith of SN systems compiled quite a lot of it into libsngcc.a. Except libsngcc.a wasnt really meant for the yaroze, it was meant for the pro developers, and they have a function called _exit(). I have no idea what this does To get your program to compile, try giving it a function _exit() and see what happens. It better be a 'C' function to avoid 'name mangling'. make a file exit.c void _exit(void) { } compile -c and link it in. I never found this problem because I always linked in ctors.cpp (ctors.txt in ~frothy/ftp) and this took precedence over the version in libsngcc.a which calls _exit. Your way is better though. Also i never used pure virtual functions at the time, but i think they work with the above fix. These are the only two modules in libsngcc.a that call _exit. Hey im a bit worried about your main() though. You are calling new (which calls malloc) before you've initialised the heap with InitHeap(), so i have no idea where you're creating your Object. Best to call InitHeap before you do anything else. best wishes graeme