[interfacekit] Re: A problem.

On Fri, 6 Jun 2003 15:49:48 +0300 "Adi Oanca" <e2joseph@xxxxxxxxxx> 
wrote:

> I have a problem that is driving me nuts! aAaaaaAAAh! :-)
> 
> In BeIDE, when I RUN the project I get:
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> Error   : /boot/home/Devel/Test=5FBV/(Objects.Skeleton)/
> clsMainWindow.o: In
> function `clsMainWindow::MessageReceived(BMessage *)':
> /boot/home/Devel/Test=5FBV/(Objects.Skeleton)/clsMainWindow.o(.text+
> 0x2f2):
> undefined reference to `BFont::GetFamilyAndStyle(char (*)[63], char (
> *)[63])
> const'
> 
> Error   : collect2: ld returned 1 exit status
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

[code]

The code looks OK.

> Why the linking process fails=3F=3F=3F

The short answer is: Because of the missing symbol. :-)
Indeed that's not the linker's fault, since that symbol really doesn't 
exist. What does exist is `BFont::GetFamilyAndStyle(char (*)[64], char 
(*)[64]) const'. So, the question to be answered is, what makes the 
compiler think, that the parameters are char[63]. Both the OBOS and the 
R5 header define:

#define B=5FFONT=5FFAMILY=5FLENGTH 63
typedef char font=5Ffamily[B=5FFONT=5FFAMILY=5FLENGTH + 1];
#define B=5FFONT=5FSTYLE=5FLENGTH 63
typedef char font=5Fstyle[B=5FFONT=5FSTYLE=5FLENGTH + 1];

So, using these headers things should work just fine. You haven't by 
any chance been playing with these definitions=3F

> PS: The same happens when compiling MANY other OBOS sources!!!

Can you point me to any or send something enabling me to reproduce the 
problem=3F I've just started a complete build, but this will take a 
while...

CU, Ingo


Other related posts: