Mail Archives: djgpp/2003/09/30/00:59:27
> From: jbs30000 AT aol DOT com (Joel)
> Newsgroups: comp.os.msdos.djgpp
> Date: 29 Sep 2003 17:37:26 -0700
>
> OK, after looking at my last post, I see it's too long and hard to
> read, so I'll make this question very simple. If a routine includes
> these external declarations:
>
> extern void Bank_Plot_8(unsigned short X, unsigned short Y, unsigned
> char R, unsigned char G, unsigned char B, unsigned char LO);
>
> extern void Linear_Plot_8(unsigned short X, unsigned short Y, unsigned
> char R, unsigned char G, unsigned char B, unsigned char LO);
>
> extern void (*Plot_Pixel)(unsigned short X, unsigned short Y, unsigned
> char R, unsigned char G, unsigned char B, unsigned char LO);
>
> extern unsigned long (*Pixel_Point)(unsigned short X, unsigned short
> Y);
>
> And then I go
>
> Plot_Pixel = &Linear_Plot_8;
>
> Pixel_Point = &Linear_Point_8;
>
> And I get an error:
>
> Error: undefined reference to `Linear_Point_8(unsigned short, unsigned
> short)
>
> What could be the problem? Thank you.
The linker needs to see the _definition_ of that function, not just
its prototype declaration. That is, when you link your program, one
of the object files you link must have the code of Linear_Point_8.
- Raw text -